Est-il possible de créer une liste de fonctions en Java?
J'ai un tas de fonctions, sans paramètre ni type de retour, et je voudrais les mettre dans une liste. J'ai essayé avec List<Consumer<Void>>
mais ne peut pas sembler les obtenir là.
Réponses:
1 pour la réponse № 1Si ces "fonctions" sont void
méthodes sans paramètres, vous pouvez utiliser Runnable
:
class MyClass {
void someMethod() { ... }
static void anotherMethod() { ... }
}
MyClass obj = new MyClass();
List<Runnable> list = new ArrayList<>();
// for instance methods
list.add(obj::someMethod);
// for static methods
list.add(MyClass::anotherMethod);
Cela fonctionne parce que Runnable
est un interface fonctionnelle et son run()
méthode correspond à vos méthodes: void
et pas d'arguments.