java.lang . Null Pointer Exception问题怎么解决




class Class1{

    int a,b;

}

class Class2{

    float c,d;

}

class Class3{

    String st;

    Class1 c1;

    Class2 c2;

}



public class PackTest {



    public static void main(String[] args) {



        Class1 c1= new Class1();

        Class2 c2= new Class2();

        Class3 c3= new Class3();

        System.out.println(c1.a+" "+c1.b);

        System.out.println(c2.c+" "+c2.d);

        System.out.println(c3.st);

        System.out.println(c3.c1);

        System.out.println(c3.c2);

        System.out.println(c3.c2.c);//为什么错误

    }

}

img

因为你Class3里面的Class2还没有实例化,还需要new Class2();

你控制台都打印出来了,c3.c2是null,空指针了

有一个对象是空指针,注释看看

因为你的类成员变量没有设置默认值,也没有复制,所以直接获取的就是空值,打印之前要if判断是否空

因为你没有给c3的c2进行初始化,上一行都打印出来了,c3的c2是null,你去访问它的属性必然会报错