Скажімо, у Java 8 є наступний функціональний інтерфейс:
interface Action<T, U> {
U execute(T t);
}
І в деяких випадках мені потрібна дія без аргументів або типу повернення. Тому я пишу щось подібне:
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
Однак це дає мені помилку компіляції, мені потрібно записати її як
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Що некрасиво. Чи є спосіб позбутися Void
параметра типу?
Runnable
, що ви шукаєтеRunnable r = () -> System.out.println("Do nothing!");