在java的学习过程中,很多人会遇到一个空指针异常,这是之前没有遇到的,今天我们来简单说一下。相信在刚刚学习java时我们会遇到很多的问题报错,像数组下标越界,数据溢出等都是新学习很多人会遇到的问题,空指针异常在进入到面向对象的学习之后很多人第一次遇到了这个问题。
例如如下,有一个对象数组,数组长度为3,里面存放了两个对象,这样数组下标为2的地方为空,并没有存放对象,当我们需要用这个数组进行登录,注册等操作的时候如果一不小心就会遇到空指针异常。
在登录或注册的时候我们都需要进行用户名的校验,就很难避免遍历数组的环节,而我们的对象属性是封装的只能通过get或set方法进项访问,当我们遍历数组取用户名时候这时粗心的小伙伴就忘记了我们数组中只有两个对象而长度为三,这时就会遇到空指针异常。
public static void main(String[] args) {
User[] users = new User[3];
User user1 = new User();
User user2 = new User();
users[0]=user1;
users[1]=user2;
for (int i = 0; i < users.length; i++) {
users[i].setUsername(""+i);
}
}
上面代码就会造成空指针异常
要解决这个问题也是比较简单的,因为存在空值无法使用get或set方法,所以只需要在遍历数组时加上判断如果数组为空则break循环,不再执行即可,这是很多小伙伴第一次遇到空指针异常,需要特别注意一下。