我一直只使用了Java 6和我現在趕上學習什麼用Java 8的新功能我在這裏讀這篇文章: http://www.drdobbs.com/jvm/lambda-expressions-in-java-8/240166764?pgno=2BiFunction引用可以傳遞給期望函數接口的方法嗎?
它說:
Java的API定義了java.util.function包中的幾個通用功能接口。接口之一,雙功能,描述了參數類型T和U和返回類型 R.您功能可以保存我們的字符串比較拉姆達在於 類型的變量:
雙功能排版 =(第一,第二) - > Integer.compare(first.length(),second.length());
但是,這並不能幫助您排序。有 是沒有Arrays.sort方法,想要一個BiFunction。如果您以前使用過功能編程語言,您可能會發現這種好奇心。但是對於Java程序員而言,這是非常自然的。一個接口如 比較器有一個特定的用途,而不僅僅是一個給定 參數和返回類型的方法。 Java 8保留了這種風格。當你想要 做一些lambda表達式時,你仍然想要保持表達式的目的,並且有一個特定的功能 接口。
然而,當我看到這個線程: How do you assign a lambda to a variable in Java 8?
這個問題的答案有建議做正是引用的段落說你不能這樣做。
那麼,文章中的信息是不正確的,還是我在這裏誤讀了一些東西?
謝謝!
你可以只分配相同的lambda來了'Comparator'和排序調用... –