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