:: (Doppelpunkt) Operator in Java 8

Ich habe die Java 8-Quelle erkundet und fand diesen speziellen Teil des Codes sehr überraschend:

//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;
}

IstMath::max so etwas wie ein Methodenzeiger? Wie funktioniert ein normalerstatic Methode wird konvertiert nachIntBinaryOperator?

Antworten auf die Frage(17)

Ihre Antwort auf die Frage