لماذا أحصل على استثناء مؤشر فارغ في هذا الرمز؟
-
28-09-2019 - |
سؤال
public class Test {
Integer i;
int j;
public static void main ( String [] args ) {
Test t = new Test ();
t.go();
}
public void go() {
j=i;
System.out.println(j);
System.out.println(i);
}
}
انتاج : استثناء في الموضوع "الرئيسي" java.lang.nullpointerxception في test.go (test.java:12) في test.main (test.java:8)
المحلول
من الواضح أن هذا ليس الخطأ. ستحصل على وقت تشغيل nullpointerxception لأنك تقوم بإلغاء مرجع فارغ (i
) في بدائية (j
). انظر JLS §5.1.8.
السبب i
هل تتم تهيئة حقول المثيل إلى 0 أو خالية أو خاطئة بشكل افتراضي.
لا تنتمي إلى StackOverflow