ما هو التعبير اللامي؟
طريقة مختصرة لكتابة دالة بلا اسم — تُمرّر كقيمة.
// بدلًا من صنف كامل ينفّذ واجهة
Runnable task = () -> System.out.println("يعمل");
task.run();
الصيغة
(معاملات) -> تعبير
(معاملات) -> { جُمل }
أمثلة:
() -> 42 // بلا معاملات
x -> x * 2 // معامل واحد
(a, b) -> a + b // معاملان
(a, b) -> { return a + b; } // بكتلة
الواجهة الدالية
واجهة بدالة مجرّدة واحدة — يمكن تنفيذها بـ lambda:
@FunctionalInterface
interface Calculator {
int operate(int a, int b);
}
Calculator add = (a, b) -> a + b;
add.operate(3, 4); // 7
واجهات جاهزة
| الواجهة | الاستخدام |
|---|---|
Predicate<T> | شرط يعيد boolean |
Function<T,R> | تحويل قيمة |
Consumer<T> | يستهلك بلا إرجاع |
Supplier<T> | يوفّر قيمة |
import java.util.function.Predicate;
Predicate<Integer> isEven = n -> n % 2 == 0;
isEven.test(4); // true
مع المجموعات
names.forEach(name -> System.out.println(name));
🎯 التالي: واجهة الـ Stream لمعالجة البيانات.