相关疑难解决方法(0)

Java 8中的::(双冒号)运算符

我正在探索Java 8源代码,发现代码的这一特定部分非常令人惊讶:

//defined in IntPipeline.java
@Override
public final OptionalInt reduce(IntBinaryOperator op) {
    return evaluate(ReduceOps.makeInt(op));
}

@Override
public final OptionalInt max() {
    return reduce(Math::max); //this is the gotcha line
}

//defined in Math.java
public static int max(int a, int b) {
    return (a >= b) ? a : b;
}
Run Code Online (Sandbox Code Playgroud)

Math::max什么样的方法指针?普通static方法如何转换为IntBinaryOperator

java java-8

912
推荐指数
8
解决办法
31万
查看次数

您是否有Java 8 Functional接口列表(不是java.util.function中列出的接口)?

我试图看看是否有任何方法可以获得Java 8中作为功能接口的所有接口的列表.我不是在谈论这个页面上的列表:

https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html

相反,我在谈论像Comparator,FileFilter和Runnable这样的接口--API文档显示的接口是这样的功能:

@FunctionalInterface公共接口Runnable

这些地方有完整的清单吗?

谢谢!

java java-8 functional-interface

13
推荐指数
4
解决办法
4331
查看次数

标签 统计

java ×2

java-8 ×2

functional-interface ×1