en Java et Scala, comment pourrais-je faire ce qui suit:Créer un paramètre qui est un Varier Fonction
Je veux être en mesure de passer une fonction dans une fonction comme paramètre où le paramètre de la fonction est un peu variable. Par exemple, ce que je suis enfermé dans maintenant en Java:
public void doSomething(Object object, Action1<Object> function) {
function.call(object);
}
public void doOtherThing(Object obj) {
System.out.println(obj);
}
doSomething("hello", this::doOtherThing);
Voilà ce que je veux être en mesure de le faire:
public void doSomethingFancy(Object object, <Some Function Type Here> function) {
function.call(object);
}
public void doFancyThing(Object obj1, String str1, List list1) {
// do stuff
}
public void doFancyThing2(Object obj1, RandomObj rObj, Integer int1) {
// do stuff
}
...
doSomething("hello", this::doFancyThing);
doSomething("hello", this::doFancyThing2);
Fondamentalement, je veux la fonction d'entrée pour un type de variable des paramètres d'entrée. ActionN ne fonctionnera pas car cela passerait un tableau d'objet dans ma méthode doFancyThing
et cela ne compile évidemment pas.
Créez une interface personnalisée. – shmosel
Surcharger la signature de la méthode? avez-vous un ensemble spécifique de paramètres d'entrée? – drelliot
Mise à jour de la question –