instanceof
فحص نوع الكائن instanceof
instanceof تُرجع true إذا الكائن من النوع المحدد أو نوع مشتق منه — مفيدة في التعامل مع polymorphism.
instanceof تفحص نوع الكائن وقت التشغيل (runtime). تُرجع true إذا الكائن من النوع المحدد أو أي صنف مشتق منه. مفيدة عندما تحتاج التحقق من النوع قبل التحويل Casting. منذ Java 16، يمكنك تحديد المتغير مباشرة مع instanceof.
الصياغة
if (obj instanceof Type) {
Type t = (Type) obj;
}
// Java 16+
if (obj instanceof Type t) {
// استخدم t مباشرة
}📄 مثال
Object obj = "مرحبًا";
if (obj instanceof String) {
String s = (String) obj;
System.out.println(s.length());
}
// الصيغة الحديثة:
if (obj instanceof String s) {
System.out.println(s.length()); //无需 تحويل
}أهم النقاط
| العنصر | الوظيفة |
|---|---|
| obj instanceof Type | يُرجع true إذا obj من Type أو صنف مشتق |
| instanceof Type var | Java 16+: يحديد المتغير مع الفحص — أنظف وأأمن |
| null instanceof Type | دائما false — null ليست كائنًا من أي نوع |
💡 نصائح عملية
- استخدم الصيغة الحديثة instanceof Type var — تلغي الحاجة لـ casting يدوي
- لا تستخدم instanceof بكثرة — أحيانًا polymorphism أو visitor pattern أنظف
⚠️ أخطاء شائعة
- nxing instanceof مع primitive types — تعمل فقط مع الأنواع المرجعية (كائنات)
- nxing null instanceof Type — دائما false لكن لا تسبب خطأ
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.