在Java 8中,类型推断已扩展到目标类型,从而可以编写:
Comparator<String> ascending = comparingInt(String::length);
无需使用类型见证(Comparator.<String> comparingInt)。但是,下面的最后一条语句无法编译。有什么原因吗?有解决方法吗?
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
该问题已通过内部版本129修复(但直到内部版本128才出现)。