注意:这个问题源于一个死链接,这是一个以前的 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());
根据 and 的 javadoc,.min()
两者.max()
的参数都应该是 a Comparator
。然而这里的方法引用是Integer
类的静态方法。
那么,为什么要编译呢?