我在探索Java 8源代码时,发现这部分代码非常令人惊讶:
// Defined in IntPipeline.java@Overridepublic final OptionalInt reduce(IntBinaryOperator op) {return evaluate(ReduceOps.makeInt(op));}
@Overridepublic final OptionalInt max() {return reduce(Math::max); // This is the gotcha line}
// Defined in Math.javapublic static int max(int a, int b) {return (a >= b) ? a : b;}
Math::max
是一个方法指针吗?普通的static
方法如何转换为IntBinaryOperator
方法?