تخطَّ إلى المحتوى

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 varJava 16+: يحديد المتغير مع الفحص — أنظف وأأمن
null instanceof Typeدائما false — null ليست كائنًا من أي نوع

💡 نصائح عملية

  • استخدم الصيغة الحديثة instanceof Type var — تلغي الحاجة لـ casting يدوي
  • لا تستخدم instanceof بكثرة — أحيانًا polymorphism أو visitor pattern أنظف

⚠️ أخطاء شائعة

  • nxing instanceof مع primitive types — تعمل فقط مع الأنواع المرجعية (كائنات)
  • nxing null instanceof Type — دائما false لكن لا تسبب خطأ

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.