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::compare
kullanı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ı Integer
sınıfın statik yöntemlerine ilişkindir.
Peki, bu neden derleniyor?
Integer
yöntemleri değildir Comparator
.
Integer::compare
yerine kullanması gerektiğini unutmayın .Integer::max
Integer::min