Considérez le code Scala suivant:
package scala_java
object MyScala {
def setFunc(func: Int => String) {
func(10)
}
}
Maintenant en Java, j'aurais aimé utiliser MyScala
comme:
package scala_java;
public class MyJava {
public static void main(String [] args) {
MyScala.setFunc(myFunc); // This line gives an error
}
public static String myFunc(int someInt) {
return String.valueOf(someInt);
}
}
Cependant, ce qui précède ne fonctionne pas (comme prévu car Java n'autorise pas la programmation fonctionnelle). Quelle est la solution de contournement la plus simple pour passer une fonction en Java? Je voudrais une solution générique qui fonctionne avec des fonctions ayant un nombre arbitraire de paramètres.