Допустим, у меня есть следующий функциональный интерфейс в 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!");