Method Reference
مرجع الدالة Method Reference
مرجع الدالة :: اختصار لـ lambda تستدعي دالة موجودة — أقصر وأوضح.
Method reference (العلامة ::) اختصار لـ lambda تستدعي دالة موجودة بالفعل. أربعة أنواع: دالة ثابتة، دالة عضو، دالة عضو لمرجع، ومرجع باني.
الصياغة
ClassName::staticMethod instance::method ClassName::method ClassName::new
📄 مثال
import java.util.*;
import java.util.function.*;
// دالة ثابتة:
Function<String, Integer> len = String::length;
// دالة عضو:
Predicate<String> isEmpty = String::isEmpty;
// مع المجموعات:
List<String> names = List.of("سارة", "أحمد", "محمد");
names.forEach(System.out::println);
names.stream()
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
// مرجع باني:
Supplier<ArrayList<String>> factory = ArrayList::new;
ArrayList<String> list = factory.get();أهم النقاط
| العنصر | الوظيفة |
|---|---|
| Class::staticMethod | مرجع لدالة ثابتة |
| instance::method | مرجع لدالة عضو على كائن محدد |
| Class::method | مرجع لدالة عضو (يحتاج معامل أول) |
| Class::new | مرجع لباني الصنف |
💡 نصائح عملية
- استخدم method reference مع map و filter و forEach — أوضح من lambda مكافئ
- String::toUpperCase يكافئ s -> s.toUpperCase()
⚠️ أخطاء شائعة
- nxing method reference مع دوال ذات عدة معاملات — أحيانًا lambda أوضح
- nxing Class::method عندما يكون Method static على الصنف — يجب ClassName::method
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.