Learn Typing Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Computer Fundamentals English English Conversations Problem Solving

Javaطريقة تعريف دالة ترجع قيمة و تملك باراميتر واحد بأسلوب Lambda Expressions في جافا

في المثال التالي قمنا بتعريف إنترفيس إسمه Greetings يحتوي على دالة إسمها welcomeUser() عند استدعاءها نعطيها إسم شخص فترجع رسالة ترحيب صغيرة بإسم هذا الشخص.
بعدها قمنا بإنشاء كلاس إسمه Main بداخله قمنا بإنشاء Anonymous Inner Class يطبق الإنترفيس Greetings.

ملاحظة: لم نستخدم أسلوب الـ Lambda Expressions.

المثال الأول

Greetings.java
public interface Greetings {
// Greetings في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها
public String welcomeUser(String userName);
}
public interface Greetings { // Greetings في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها public String welcomeUser(String userName); }

Main.java
public class Main {
public static void main(String[] args) {
// obj مع إنشاء كائن منه و تخزينه في الكائن Greetings من الإنترفيس Anonymous Inner Class هنا قمنا بإنشاء
Greetings obj = new Greetings() {
// welcomeUser() للدالة Override و فعلنا
@Override
public String welcomeUser(String userName) {
return "Welcome " + userName;
}
};
// welcomeUser() هنا قمنا باستدعاء الدالة
System.out.println( obj.welcomeUser("Mhamad") );
}
}
public class Main { public static void main(String[] args) { // obj مع إنشاء كائن منه و تخزينه في الكائن Greetings من الإنترفيس Anonymous Inner Class هنا قمنا بإنشاء Greetings obj = new Greetings() { // welcomeUser() للدالة Override و فعلنا @Override public String welcomeUser(String userName) { return "Welcome " + userName; } }; // welcomeUser() هنا قمنا باستدعاء الدالة System.out.println( obj.welcomeUser("Mhamad") ); } }

سنحصل على النتيجة التالية عند التشغيل.

Welcome Mhamad
Welcome Mhamad

هنا قمنا بإعادة نفس المثال السابق باستخدام أسلوب الـ Lambda Expressions.

المثال الثاني

Greetings.java
public interface Greetings {
// Greetings في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها
public String welcomeUser(String userName);
}
public interface Greetings { // Greetings في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها public String welcomeUser(String userName); }

Main.java
public class Main {
public static void main(String[] args) {
// welcomeUser() لإنشاء الكائن و تعريف الدالة Lambda Expressions هنا استخدمنا أسلوب الـ
Greetings obj = (userName)-> {
return "Welcome " + userName;
};
// welcomeUser() هنا قمنا باستدعاء الدالة
System.out.println( obj.welcomeUser("Mhamad") );
}
}
public class Main { public static void main(String[] args) { // welcomeUser() لإنشاء الكائن و تعريف الدالة Lambda Expressions هنا استخدمنا أسلوب الـ Greetings obj = (userName)-> { return "Welcome " + userName; }; // welcomeUser() هنا قمنا باستدعاء الدالة System.out.println( obj.welcomeUser("Mhamad") ); } }

سنحصل على النتيجة التالية عند التشغيل.

Welcome Mhamad
Welcome Mhamad

في المثال السابق كان بإمكاننا عدم وضع أقواس البداية و النهاية و الجملة return عندما فعلنا Override للدالة welcomeUser() لأننا وضعنا أمر واحد فيها.


إذاً يمكن تبديل الكود التالي.

Greetings obj = (userName)-> {
return "Welcome " + userName;
};
Greetings obj = (userName)-> { return "Welcome " + userName; };

بهذا الكود.

Greetings obj = (userName)-> { return "Welcome " + userName; };
Greetings obj = (userName)-> { return "Welcome " + userName; };

أو بهذا الكود.

Greetings obj = (userName)-> "Welcome " + userName;
Greetings obj = (userName)-> "Welcome " + userName;

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة