考慮下面的Scala代碼:從Java使用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比以下討論的經典解決方案有更好的語法嗎?
請務必查看文章和Daniel的FunUtils類,這有助於刪除'$ tag'和'compose'所需的一些樣板。 –
這是非常豐富的。我曾看過這篇文章,但沒有閱讀評論。 – Jus12