पाठ 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 हों या दोबारा असाइन न हों।