Avatar ·

هل تحتاج إلى التحقق من null قبل instanceof في Java؟

مرحبًا أيها الزملاء! أنا مطور Java مبتدئ وواجهت سؤالًا يقلقني. لنفترض أن لدي متغيرًا قد يكون null، وأريد التحقق من نوعه باستخدام instanceof. هل أحتاج إلى التحقق صراحةً من أن المتغير ليس null قبل ذلك؟ إليك مثال على الكود الذي أكتبه غالبًا: ```java Object obj = getSomeObject(); // قد يعيد null if (obj != null) { if (obj instanceof String) { String str = (String) obj; System.out.println(str.length()); } } ``` لكن مؤخرًا قيل لي أن instanceof آمن بذاته ويعيد false لـ null. أي يمكنني الكتابة هكذا: ```java if (obj instanceof String) { String str = (String) obj; System.out.println(str.length()); } ``` جربت — بالفعل، لا يحدث استثناء NullPointerException. لكن لا تزال لدي شكوك: هل يعمل هذا فقط في حالات معينة؟ ربما هناك مخاطر خفية؟ على سبيل المثال، إذا كان obj هو null، فإن instanc