次の 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 には、以下で説明する従来のソリューションよりも優れた構文がありますか?