"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा में कार्यात्मक इंटरफेस को समझना: वे क्यों मायने रखते हैं और उनका उपयोग कैसे करें

जावा में कार्यात्मक इंटरफेस को समझना: वे क्यों मायने रखते हैं और उनका उपयोग कैसे करें

2024-11-08 को प्रकाशित
ब्राउज़ करें:547

Understanding Functional Interfaces in Java: Why They Matter and How to Use Them

1. कार्यात्मक इंटरफ़ेस क्या है?

जावा में एक कार्यात्मक इंटरफ़ेस एक इंटरफ़ेस है जिसमें बिल्कुल एक सार विधि होती है। यह एकल-विधि बाधा कार्यात्मक इंटरफेस को लैम्ब्डा अभिव्यक्तियों और विधि संदर्भों के लिए लक्ष्य प्रकार के रूप में उपयोग करने की अनुमति देती है।

1.1 कार्यात्मक इंटरफेस के लक्षण

कार्यात्मक इंटरफेस में बिल्कुल एक अमूर्त विधि होनी चाहिए। यह उन्हें लैम्ब्डा एक्सप्रेशन के साथ उपयोग के लिए आदर्श बनाता है, जो कार्यात्मक प्रोग्रामिंग को सक्षम करने के लिए जावा 8 में पेश की गई एक प्रमुख विशेषता है।

यहां कार्यात्मक इंटरफ़ेस का एक त्वरित उदाहरण दिया गया है:

@FunctionalInterface
public interface MyFunctionalInterface {
    void performAction();
}

इस उदाहरण में, MyFunctionalInterface एक कार्यात्मक इंटरफ़ेस है क्योंकि इसमें केवल एक सार विधि, performAction() शामिल है।

1.2 लैम्ब्डा एक्सप्रेशन और कार्यात्मक इंटरफेस

लैम्ब्डा एक्सप्रेशन कार्यात्मक इंटरफेस को लागू करने का एक संक्षिप्त तरीका प्रदान करते हैं। वे अज्ञात वर्ग कार्यान्वयन की आवश्यकता को समाप्त करते हैं, जिससे कोड अधिक पठनीय और कॉम्पैक्ट हो जाता है।

यहां बताया गया है कि आप MyFunctionalInterface इंटरफ़ेस के साथ लैम्ब्डा एक्सप्रेशन का उपयोग कैसे कर सकते हैं:

public class Main {
    public static void main(String[] args) {
        MyFunctionalInterface action = () -> System.out.println("Action performed!");
        action.performAction();
    }
}

इस कोड स्निपेट में, लैम्ब्डा एक्सप्रेशन () -> System.out.println("क्रिया निष्पादित!") MyFunctionalInterfaceperformAction विधि लागू करता है ].

2. हमें कार्यात्मक इंटरफेस की आवश्यकता क्यों है?

कार्यात्मक इंटरफ़ेस केवल एक सैद्धांतिक अवधारणा नहीं है; उनके पास जावा प्रोग्रामिंग में व्यावहारिक अनुप्रयोग हैं, विशेष रूप से संग्रह और स्ट्रीम प्रसंस्करण से जुड़े परिदृश्यों में।

2.1 लैम्ब्डा एक्सप्रेशंस के साथ कोड को सरल बनाना

कार्यात्मक इंटरफ़ेस डेवलपर्स को व्यवहार को पैरामीटर के रूप में पारित करने की अनुमति देकर कोड को सरल बनाते हैं। यह उन स्थितियों में विशेष रूप से उपयोगी है जहां आपको डेटा संग्रह पर संचालन करने की आवश्यकता होती है।

उदाहरण के लिए, संख्याओं की सूची को फ़िल्टर करने के लिए एक कार्यात्मक इंटरफ़ेस का उपयोग करने पर विचार करें:


आयात java.util.Arrays; आयात java.util.List; आयात java.util.function.Predicate; सार्वजनिक वर्ग मुख्य { सार्वजनिक स्थैतिक शून्य main (String [] args) { सूची संख्याएँ = Arrays.asList(1, 2, 3, 4, 5); विधेय सम है = n -> n % 2 == 0; नंबर.स्ट्रीम() .फ़िल्टर(सम है) .forEach(System.out::println); } }
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Main {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3, 4, 5);

        Predicate isEven = n -> n % 2 == 0;

        numbers.stream()
               .filter(isEven)
               .forEach(System.out::println);
    }
}
इस उदाहरण में,

Predicate एक एकल अमूर्त विधि test() के साथ एक कार्यात्मक इंटरफ़ेस है। लैम्ब्डा एक्सप्रेशन n -> n % 2 == 0 इस विधि के लिए कार्यान्वयन प्रदान करता है, जिससे हमें सूची से सम संख्याओं को फ़िल्टर करने की अनुमति मिलती है।

2.2 बढ़ी हुई पठनीयता और रख-रखाव

कार्यात्मक इंटरफेस और लैम्ब्डा अभिव्यक्तियों का उपयोग आपके कोड की पठनीयता और रखरखाव को महत्वपूर्ण रूप से बढ़ा सकता है। वे आपको कम बॉयलरप्लेट कोड लिखने और व्यवहार को अधिक स्वाभाविक रूप से व्यक्त करने की अनुमति देते हैं।

उदाहरण के लिए, लैम्ब्डा अभिव्यक्तियों के बिना, किसी सूची को फ़िल्टर करने में अनाम कक्षाओं के साथ वर्बोज़ कोड लिखना शामिल हो सकता है:


आयात java.util.Arrays; आयात java.util.List; आयात java.util.ArrayList; सार्वजनिक वर्ग मुख्य { सार्वजनिक स्थैतिक शून्य main (String [] args) { सूची संख्याएँ = Arrays.asList(1, 2, 3, 4, 5); सूची समनंबर = नई ArrayList(); (पूर्णांक संख्या : संख्या) के लिए { यदि (संख्या % 2 == 0) { evenNumbers.add(संख्या); } } (पूर्णांक सम संख्या : सम संख्या) के लिए { System.out.println(evenNumber); } } }
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Main {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3, 4, 5);

        Predicate isEven = n -> n % 2 == 0;

        numbers.stream()
               .filter(isEven)
               .forEach(System.out::println);
    }
}
उपर्युक्त कोड एक ही परिणाम प्राप्त करता है लेकिन लैम्ब्डा अभिव्यक्तियों के साथ स्ट्रीम एपीआई उदाहरण की तुलना में अधिक क्रियात्मक और पढ़ने में कठिन है।

3. निष्कर्ष

कार्यात्मक इंटरफेस जावा में एक शक्तिशाली सुविधा है जो कोड को सरल बनाती है और इसे अधिक अभिव्यंजक बनाती है। लैम्ब्डा अभिव्यक्तियों का उपयोग करके, आप आधुनिक प्रोग्रामिंग प्रथाओं का पालन करने वाला स्वच्छ, अधिक पठनीय कोड लिख सकते हैं। यदि आपके कोई प्रश्न हैं या कार्यात्मक इंटरफ़ेस पर और स्पष्टीकरण की आवश्यकता है, तो बेझिझक नीचे एक टिप्पणी छोड़ें!

पर अधिक पोस्ट पढ़ें: जावा में कार्यात्मक इंटरफेस को समझना: वे क्यों मायने रखते हैं और उनका उपयोग कैसे करें

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/anh_trntun_4732cf3d299/understanding-functional-interfaces-in-java-why-they-matter-and-how-to-use-them-9bi?1 यदि कोई उल्लंघन है , कृपया स्टडी_गोलंग @163.कॉमडिलीट से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3