Javaطريقة تعريف دالة تأخذ أكثر من باراميتر بأسلوب Lambda Expressions في جافا
في المثال التالي قمنا بتعريف إنترفيس إسمه Operations
يحتوي على دالة إسمها sum()
عند استدعاءها نعطيها عددين فترجع ناتج جمعهما.
بعدها قمنا بإنشاء كلاس إسمه Main
بداخله قمنا بإنشاء Anonymous Inner Class يطبق الإنترفيس Operations
.
ملاحظة: لم نستخدم أسلوب الـ Lambda Expressions.
المثال الأول
public interface Operations { // Operations في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها int sum(int a, int b); }
public class Main { public static void main(String[] args) { // obj مع إنشاء كائن منه و تخزينه في الكائن Operations من الإنترفيس Anonymous Inner Class هنا قمنا بإنشاء Operations obj = new Operations() { // sum() للدالة Override و فعلنا public int sum(int a, int b) { return a+b; } }; // لطباعة ناتج العددين 3 و 4 sum() هنا قمنا باستدعاء الدالة System.out.println( obj.sum(3,4) ); } }
سنحصل على النتيجة التالية عند التشغيل.
7
هنا قمنا بإعادة نفس المثال السابق باستخدام أسلوب الـ Lambda Expressions.
المثال الثاني
public interface Operations { // Operations في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها int sum(int a, int b); }
public class Main { public static void main(String[] args) { // sum() لإنشاء الكائن و تعريف الدالة Lambda Expressions هنا استخدمنا أسلوب الـ Operations obj = (int a, int b)-> { return a+b; }; // لطباعة ناتج العددين 3 و 4 sum() هنا قمنا باستدعاء الدالة System.out.println( obj.sum(3,4) ); } }
سنحصل على النتيجة التالية عند التشغيل.
7
في المثال السابق كان بإمكاننا عدم تحديد أنواع الباراميترات و عدم وضع أقواس البداية و النهاية و الجملة return
عندما فعلنا Override للدالة sum()
لأننا وضعنا أمر واحد فيها.
إذاً يمكن تبديل الكود التالي.
Operations obj = (int a, int b)-> { return a+b; };
بهذا الكود.
Operations obj = (a, b)-> { return a+b; };
أو بهذا الكود.
Operations obj = (a, b)-> return a+b;