当前位置: 首页 > 知识库问答 >
问题:

Java运算符在此上下文中做什么?[副本]

江渊
2023-03-14

在下面的代码示例中,::做什么:

public static void main(String[] args) {

    List<Integer> l = Arrays.asList(1,2,3,4,5,6,7,8,9,10);      

    Integer s = l.stream().filter(Tests::isGT1)
                         .filter(Tests::isEven)
                         .map(Tests::doubleIt)
                         .findFirst()
                         .orElse(100);          
    System.out.println(s);      
}


private static boolean isGT3(int number){
    return number > 3;
}

private static boolean isEven(int number){
    return number % 2 ==0;
}       
private static int doubleIt(int number){
    return number * 2;
}

共有1个答案

白文彬
2023-03-14

这些是方法引用。这只是编写lambda表达式的一种更简单的方法:

.map(Tests::doubleIt)

相当于

.map(i -> Tests.doubleIt(i))

您还可以使用SomeObject::SomeMethod引用实例方法,甚至可以使用SomeClass::New引用构造函数

 类似资料:
  • 问题内容: 在阅读Android通知指南时,我偶然发现了这一点: 增加振动 您可以使用默认振动模式或应用程序定义的振动模式来警告用户。 要使用默认模式,请将“ DEFAULT_VIBRATE”添加到默认字段: 这样做很清楚:它将标志添加到通知对象的默认标志。但是,运算符在Java中做什么?它看起来像一个“ OR”,但是它如何工作? 您可以举一个使用数字的例子吗? 谢谢 问题答案: 是按位或分配运算

  • 问题内容: (插入符)运算符在Java中提供什么功能? 当我尝试这个: …它给我: …所以我猜它不执行幂运算。但是那是什么呢? 问题答案: Java中的运算子 在Java中,“异或”运算符。 让我们举个例子: 这是按位(JLS 15.22.1)和逻辑(JLS 15.22.2)xor的真值表: 更简单地,你也可以将xor视为“ this or that,但不是两者都!”。 Exponentiatio

  • 更新/答案:原来IntelliJ12支持Java 8,后者支持lambda,并且正在“折叠”谓词并将其显示为lambda。下面是“未折叠”代码。

  • 问题内容: 我在这里碰到了这个,总是这样使用: 什么是运营商做的,为什么不使用普通的或? 抱歉,如果以前没有回答,搜索引擎将不喜欢标点符号。 问题答案: http://docs.python.org/reference/expressions.html#notin说: [操作员]和是等效的;为了与C保持一致,是首选。[…]拼写被认为是过时的。

  • 问题内容: 我正在处理由以前的开发人员编写的代码,并在查询中说: 这个查询是什么意思?等于吗?还是语法错误? 但是它没有显示任何错误或异常。我已经知道= 在MySQL的。 问题答案: TL; DR 这是安全的相等运算符。 像常规运算符一样,将两个值进行比较,结果为(不相等)或(相等);换句话说:yields 和yields 。 与常规运算符不同,of的值没有特殊含义,因此它永远不会产生可能的结果。