Ich würde erwartet, dass beide Put-Operationen eine NullPointerException in den folgenden Code werfen, aber tatsächlich funktioniert der Lambda-Ausdruck gut, während nur die Methodenreferenz eine NPE auslöst.Unterschied zwischen Methodenreferenz und Lambda
public static void main(String... args) {
Object object = null;
Map<String, FuncInterface> map = new HashMap<>();
map.put("key1",() -> object.notify()); // works
map.put("key2", object::notify); // throws NPE
}
@FunctionalInterface
private interface FuncInterface {
public void someAction();
}
Was ist der Unterschied?
Ich habe auch versucht, Ihren Code, aber immer NPE für beide Fälle. –
@SunilSinghBora verwenden Sie Eclipse? – assylias
Ja. Ich führe diesen Code in Eclipse IDE. –