以下Stream表达式完美无缺:
Stream<String> s = Stream.of("yellow","blue", "white");
s.sorted(Comparator.reverseOrder())
.forEach(System.out::print);` //yellowwhiteblue
为什么没有与方法引用相同的编译?
s.sorted(Comparator::reverseOrder).forEach(System.out::print);
The type Comparator does not define reverseOrder(String, String) that
is applicable here
解决方法:
方法引用告诉Java“将此方法视为单方法接口的实现” – 也就是说,方法引用应该具有签名int foo(String,String),从而实现Comparator< String>.
Comparator.reverseOrder()不 – 它返回一个Comparator实例.由于sorted正在寻找比较器,它可以采用方法调用的结果,但它不能使用该方法作为接口实现.