لماذا أحصل على استثناء مؤشر فارغ في هذا الرمز؟

StackOverflow https://stackoverflow.com/questions/3887709

  •  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 أو خالية أو خاطئة بشكل افتراضي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top