पाठ 2 / 38
लैम्ब्डा व मेथड रेफ़रेंस
Function व Predicate जैसे फ़ंक्शनल इंटरफ़ेस पर लैम्ब्डा से व्यवहार को डेटा की तरह भेजें, मेथड रेफ़रेंस उपयोग करें, और effectively-final कैप्चर का ध्यान रखें।
फ़ंक्शनल इंटरफ़ेस
लैम्ब्डा एक ही एब्स्ट्रैक्ट मेथड वाले इंटरफ़ेस का इंस्टेंस है। कम्पाइलर पैरामीटर टाइप लक्ष्य से निकालता है।
सिंटैक्स रूप
मेथड रेफ़रेंस (String::toUpperCase आदि) उस लैम्ब्डा का शॉर्टहैंड है जो केवल आर्ग्युमेंट आगे भेजता है।
Comparator<String> byLen = (a, b) -> a.length() - b.length();
Runnable task = () -> System.out.println("run");
Function<String, Integer> len = String::length;
list.sort(Comparator.comparing(String::length));इफ़ेक्टिवली फ़ाइनल कैप्चर
लैम्ब्डा लोकल वेरिएबल तभी पढ़ सकता है जब वे final हों या दोबारा असाइन न हों।