私は、両方のput操作が次のコードでNullPointerExceptionをスローすることが予想されますが、実際にはラムダ式はうまく動作し、メソッド参照だけがNPEをスローします。メソッド参照とラムダの違い
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();
}
どういう違いがありますか?
あなたのコードを試しましたが、どちらの場合もNPEを取得しました。 –
@ SunilSinghBoraあなたはeclipseを使用していますか? – assylias
はい。 Eclipse IDEでこのコードを実行しています。 –