注意:这个问题来自于以前的SO问题的无效链接,但是这里...
参见下面的代码(注意:我确实知道该代码不会“起作用”,Integer::compare
应该使用-我只是从链接的问题中提取了它):
final ArrayList <Integer> list
= IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList());
System.out.println(list.stream().max(Integer::max).get());
System.out.println(list.stream().min(Integer::min).get());
据javadoc的.min()
和.max()
,两者的参数应该是一个Comparator
。然而,这里的方法引用是针对Integer
该类的静态方法的。
那么,为什么要编译呢?
Integer
不是的方法Comparator
。
Integer::compare
代替Integer::max
和Integer::min
。