Java Lambda Expressions

Functional Interface

Lambda expressions को समझने से पहले आपको functional interface के बारे में समझना होगा। एक functional interface वो interface होता है, जिसमे केवल एक ही abstract method होता है। जैसे की multi-threading के लिए यूज़ किया जाने वाला runnable interface एक functional interface कहलाता है। ऐसे interface का काम उसमे define किया गया वह एक method ही define करता है।

उदाहरण के लिए निचे मैने एक interface क्रिएट किया है। ये एक function interface है। इस interface का नाम welcome है। इस interface में एक hello() मेथड है जो की by default abstract है। ये method एक स्ट्रिंग argument लेता है और message print करता है।

interface Welcome
  {
    String hello(String name);
  }

Lambda Expressions

Lambda expression एक बिना नाम का method होता है। इस method का कोई type भी नहीं होता है। यदि इसकी body में आप एक single statement यूज़ कर रहे है तो आपको curly braces और return statement लगाने की भी जरुरत नहीं है। ये method खुद execute नहीं होता है। Lambda expression functional interface के abstract method का signature यूज़ करता है।

Lambda expressions को केवल तब ही यूज़ किया जा सकता है, जब type आपके पास पहले से available हो जैसे की variable initialization, return statement और method argument आदि। और दूसरी जितनी भी conditions है जिनमे type आपके पास पहले से available हो आप lambda expression यूज़ कर सकते है।

Lambda expression create करने के लिए आप lambda operator (->) यूज़ करते है। ये एक simple operator होता है, जिसके left side में parameters होते है और right side में method body होती है जिसे lambda body भी कहा जाता है।

Lambda expression का result आप उसी interface के reference variable में store करते है जिसका signature आपने यूज़ किया था। आप चाहे तो उस class का भी reference variable क्रिएट कर सकते है जो functional interface को implement करती है। Lambda expression का उदाहरण निचे दिया जा रहा है।

Welcome wel;
String name = "Vipin";
wel = (name)-> {
    System.out.println("Hello"+name);
};