Java Can';链接方法时不要依赖目标类型

Java Can';链接方法时不要依赖目标类型,java,generics,java-8,typing,Java,Generics,Java 8,Typing,在Java 8中,类型推断已扩展到允许写入: Comparator<String> ascending = comparingInt(String::length); Comparator升序=comparingit(字符串::长度); 无需使用类型见证(Comparator.comparingit)。但是,下面的最后一条语句无法编译。有什么原因吗?有解决办法吗 Comparator<String> ascending = comparingInt(String::l

在Java 8中,类型推断已扩展到允许写入:

Comparator<String> ascending = comparingInt(String::length);
Comparator升序=comparingit(字符串::长度);
无需使用类型见证(
Comparator.comparingit
)。但是,下面的最后一条语句无法编译。有什么原因吗?有解决办法吗

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
Comparator升序=comparingit(字符串::长度)//好啊
比较器下降=上升。反转()//好啊
比较器递减=反向顺序(comparingit(String::length))//好啊
Comparator descending=Comparator.comparingInt(字符串::长度)
.reversed()//好啊
Comparator descending=comparingit(字符串::长度).reversed()//错误

版本129修复了该问题(但直到版本128出现)。

什么版本?这在JDK 8 build b129中对我有效。对我来说,它在带有JDK 8 build b124的Netbeans 8.0 Beta版上不起作用。@MattEckert b128-现在将升级,看看这是否是问题所在。MattEckert证实,该方法显然不影响
比较法。这很奇怪。这个问题是关于产品未发布版本中的一个bug。