在下面的代码示例中,做了::
什么:
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;
}
Run Code Online (Sandbox Code Playgroud)
JB *_*zet 44
这些是方法参考.这只是编写lambda表达式的一种更简单的方法:
.map(Tests::doubleIt)
Run Code Online (Sandbox Code Playgroud)
相当于
.map(i -> Tests.doubleIt(i))
Run Code Online (Sandbox Code Playgroud)
您还可以使用someObject::someMethod
或甚至使用构造函数来引用实例方法SomeClass::new
.
归档时间: |
|
查看次数: |
22488 次 |
最近记录: |