Not: Bu soru, önceki bir SO sorusu olan ölü bir bağlantıdan kaynaklanmaktadır, ancak işte gidiyor ...
Bu kodu ( not: Bu kod "işe yaramaz" ve bu Integer::comparekullanılması gerektiğini biliyorum - ben sadece bağlı sorudan ayıklayın ):
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());
Bir javadoc göre .min()ve .max()her ikisinin bağımsız değişkeni bir olmalıdır Comparator. Ancak burada yöntem referansları Integersınıfın statik yöntemlerine ilişkindir.
Peki, bu neden derleniyor?
Integeryöntemleri değildir Comparator.
Integer::compareyerine kullanması gerektiğini unutmayın .Integer::maxInteger::min