Katakanlah saya memiliki antarmuka fungsional berikut di Java 8:
interface Action<T, U> {
U execute(T t);
}
Dan untuk beberapa kasus saya perlu tindakan tanpa argumen atau tipe pengembalian. Jadi saya menulis sesuatu seperti ini:
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
Namun, itu memberi saya kesalahan kompilasi, saya harus menuliskannya sebagai
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Itu jelek. Apakah ada cara untuk menghilangkan Void
parameter type?
Runnable
, yang Anda cariRunnable r = () -> System.out.println("Do nothing!");