对象
package test.service.bean;
import java.util.List;
public class MyRole {
private String key;
public MyRole(){
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
@Override
public String toString() {
return "MyRole{" +
"key='" + key + '\'' +
'}';
}
}
主类
package test.service.bean;
public class Main {
public static void main(String[] args) {
MyRole[] myRoles = new MyRole[1];
System.out.println(myRoles[0]);
myRoles[0].setKey("1");
// System.out.println(myRoles);
}
}
运行的结果会报错
null
Exception in thread "main" java.lang.NullPointerException
at test.service.bean.Main.main(Main.java:7)
原因
因为MyRole[] myRoles = new MyRole[1];只是对数组分配了空间,但是没有对数组进行初始化赋值所以myRoles[0] 是null 而在java中null调用null就报空指针错误。
修改后正确的主类
package test.service.bean;
public class Main {
public static void main(String[] args) {
MyRole[] myRoles = new MyRole[1];
for (int i = 0; i < myRoles.length; i++) {
//new 一个对象 初始化
myRoles[i] = new MyRole();
myRoles[i].setKey("1");
}
System.out.println(myRoles[0]);
System.out.println(myRoles);
}
}
运行的结果
MyRole{key='1'}
[Ltest.service.bean.MyRole;@63947c6b