从0学JAVA——随便写写(一)
数组比较时的空指针异常
一、异常代码
import java.util.Arrays;
//数组的声明
public class Test1 {
public static void main(String[] args) {
//数组的动态初始化
Man[] mans = new Man[10];
Man m1 = new Man(10,"a");
Man m2 = new Man(2,"b");
mans[0] = m1;
mans[1] = m2;
System.out.println(mans[1].age);
System.out.println(Arrays.toString(mans));
Arrays.sort(mans);
System.out.println(Arrays.toString(mans));
}
}
class Man implements Comparable{
int age;
int id;
String name;
public Man(int age,String name){
super();
this.age = age;
this.name = name;
}
public String toString(){
return this.name;
}
public int compareTo(Object o){
Man man = (Man) o;
if(this.age<man.age){
return -1;
}
if(this.age>man.age){
return 1;
}
return 0;
}
}
报错:Exception in thread "main" java.lang.NullPointerException
二、异常原因
在初始化man数组时,分配了10个空间,但是只给前两个元素赋值,其余元素为null,导致在比较时,报空指针异常。
三、解决办法
将man数组10个元素全部赋值,或者只分配两个空间。