有人能解释一下以下复杂的Comparator
变体之间的区别吗?
List<String> listOfStrings = Arrays.asList("algo", "test", "is", "a", "common");
listOfStrings.stream()
.sorted(Comparator.comparingInt(String::length).thenComparing(Comparator.naturalOrder()))
.sorted(Comparator.naturalOrder().thenComparing(Comparator.comparingInt(String::length))
.forEach(System.out::println);
为什么第一个对
sorted
的调用可以正常运行,而第二个却无法编译?
.sorted(Comparator.<String>naturalOrder().thenComparingInt(String::length))
... - Holger