不管是刚出来工作的还是出来工作一段时间的码农,都会与到各种各样的崩溃,这其中最常见的就是NullPointerException了,这里我进行讲解下NullPointerException的怎么出生的。
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
1、调用 null 对象的实例方法:
比如有个对象User对象:
class User{
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
在使用过程中只是定义了对象User,没有进行实例化就去获取对象里的name或sex,就会报NullPointerException;
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//user = new User();//这里实例化
user.getName();
}
2、如果一个数组为null,试图用属性length获得其长度时或直接取里面的数组里面的值
private String[] data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(data.length>0){ //这里就会空指针报错
}
data[0] = "李四"; //这里就会空指针报错
}
3、在需要抛出一个异常对象,而该对象为 null 时
static MyException e;
public static void main(String args[]){
throw e; //这里就会空指针报错}
结束语:
本人是Android开发人员,在Android开发中还是会有其它情况会报NullPointerException,这一系列的NullPointerException就是因为在使用过程中没有去初始化获取该对象已为空;在开发过程中需要谨慎,本人的想法是多做一个为空判断也好比程序崩溃的好
网友评论