2014-02-13 58 views
4

在Java 8時無法依靠目標類型,類型推斷一直延伸到target typing使寫:鏈接方法

Comparator<String> ascending = comparingInt(String::length); 

,而不必使用一種類型的見證(Comparator.<String> comparingInt)。但是,下面的最後一條語句不能編譯。有理由嗎?有沒有解決方法?

Comparator<String> ascending = comparingInt(String::length);    //ok 
Comparator<String> descending = ascending.reversed();      //ok 
Comparator<String> descending = reverseOrder(comparingInt(String::length)); //ok 
Comparator<String> descending = Comparator.<String>comparingInt(String::length) 
                .reversed();    //ok 
Comparator<String> descending = comparingInt(String::length).reversed(); //error 
+1

什麼版本?這在JDK 8 build b129中適用於我。 –

+1

對我而言,它不適用於使用JDK 8 build b124的Netbeans 8.0 Beta。 – skiwi

+1

@MattEckert b128 - 現在將升級,看看是否是這個問題。 [128/129之間的唯一變化](http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/7534523b4174)顯然不會影響'comparisonInt'方法... – assylias

回答

4

該問題已修復構建129(但出現,直到構建128)。