Рассмотрим следующий код 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? Мне нужно универсальное решение, которое работает с функциями, имеющими произвольное количество параметров.
РЕДАКТИРОВАТЬ: Имеет ли Java 8 синтаксис лучше, чем классические решения, обсуждаемые ниже?