मैं जानना चाहता हूं कि कैसे एक क्षेत्र में lambda संदर्भ प्राप्त करने के लिए। मैं एक विधि का उपयोग नहीं करना चाहता क्योंकि मेरा क्षेत्र सार्वजनिक फ़ाइनल है। मुझे संदेह है कि यह असंभव है लेकिन मुझे एक स्पष्ट बयान नहीं दिख रहा है।एक क्षेत्र के लिए Lambda संदर्भ
class A {
public final String id;
...
}
Map<String, A> f(List<A> l) {
return l.stream().collect(Collectors.toMap(A::id, Function.identity()));
}
'a -> a.id' में शामिल नहीं थे। आप सार्वजनिक क्षेत्रों का उपयोग पहली जगह क्यों कर रहे हैं? –
@JBNizet, मुझे कक्षाओं में सार्वजनिक अंतिम फ़ील्ड पसंद हैं जो डेटा संरचनाएं हैं। वे इंटरफेस को लागू नहीं करते हैं या गहरे पदानुक्रम नहीं करते हैं। –
क्या आप एक लैम्ब्डा संदर्भ चाहते हैं? आप 'सार्वजनिक' फ़ील्ड तक पहुंचने के लिए हमेशा एक उदाहरण का उपयोग कर सकते हैं। 'नया ए() आईडी आईडी की तरह। और मुझे उम्मीद है कि आपके पास सार्वजनिक क्षेत्र बनाने का वास्तव में 'मजबूत' कारण है। लेकिन चूंकि यह 'अंतिम' है, मुझे नहीं लगता कि यह एक समस्या पैदा करेगा। –