नोट: यह प्रश्न एक मृत लिंक से उत्पन्न होता है, जो पिछले 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::maxInteger::min