Disons que j'ai l'interface fonctionnelle suivante en Java 8:
interface Action<T, U> {
U execute(T t);
}
Et dans certains cas, j'ai besoin d'une action sans arguments ni type de retour. Alors j'écris quelque chose comme ça:
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
Cependant, cela me donne une erreur de compilation, je dois l'écrire comme
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
Ce qui est moche. Existe-t-il un moyen de se débarrasser du Void
paramètre de type?
Runnable
, que vous recherchezRunnable r = () -> System.out.println("Do nothing!");