以下代码执行会报错。
出错代码:
public class Test { public static void main(String[] args) { Person[] P1 = new Person[2]; P1[0].setAge(20); P1[0].setName("小王"); P1[0].setSalary(2000); for (int i= 0 ; i<P1.length;i++) { if (P1[i] != null) System.out.println(P1[i]); } } }
error info:
Exception in thread "main" java.lang.NullPointerException
at com.blocktest.Test.main(Test.java:7)
错误原因:
创建Person的数组之后,在堆中开辟了该对象数组的地址空间。
该地址中只有2个(length)null的坑。
虽然能点出Person类的成员属性,但是因为是null,所以编译的时候,回报空指针。
正确代码:
public class Test { public static void main(String[] args) { Person[] P1 = new Person[2]; P1[0] = new Person(); P1[0].setAge(20); P1[0].setName("小王"); P1[0].setSalary(2000); for (int i= 0 ; i<P1.length;i++) { if (P1[i] != null) System.out.println(P1[i]); } } }