Рассмотрим следующий код Scala:
package scala_java
object MyScala {
def setFunc(func: Int => String) {
func(10)
}
}
Теперь в Java я хотел бы использовать MyScala
как:
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);
}
}
Однако вышеупомянутое не работает (как и ожидалось, так как Java не разрешает функциональное программирование). Какое самое легкое обходное решение для передачи функции в Java? Я хотел бы, чтобы общее решение работало с функциями, имеющими произвольное количество параметров.
EDIT: есть ли у Java 8 лучший синтаксис, чем классические решения, обсуждаемые ниже?