JAVA 排序 空指针异常

public class Media { //定义一个Media类其中包含name属性
String name;

Media(String name){
this.name=name;
}
}

import java.util.Comparator;
public class CompareName implements Comparator<Media>{
@Override
public int compare(Media o1, Media o2) {
return o1.name.compareTo(o2.name);
}
}

Media me=new Media[10];
Media m=new Media("CD");
Media m2=new Media("Tape");
Media m3=new Media("Book"); //三个实例已经存放入me数组中
Arrays.sort(me,new CompareName()); //me为一个存放media的数组,想对该数组进行排序,但却发 生空指针异常,已经初始化了呀!求大神指点!!!

Media me=new Media[10];---》
Media me[]=new Media[10];

没有对me进行初始化,所以数组所有的值是null,所以会出空指针啊,你要把值放到数组中,或者做一个判断,如果是空的话,那就不进行派讯了。得做拦截啊
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-28
me初始化了 里面是什么,null吧 ,你的 me 和 m ,m2,m3有关系吗,看上去像定义了10个单位的数组,然后数组里面是10个null追问

实在不好意思~我是把我的程序部分发上来了~所以有些不完整~我是定义了一个me数组,然后已经通过一个方法把m,m2,m3放到数组中了。
我知道是哪儿错了呢~你的回答给我了一些提示,我定义的me数组长度是10,但其中只放了三个元素,其余全是null,所以在排序时会报错~感谢呢!!!!如果把数组长度改为三的话,就没问题了~

本回答被提问者和网友采纳
第2个回答  2014-01-04
Media []me=new Media[10];
me[0]=new Media("CD");
Media[1] m2=new Media("Tape");
Media[2]=new Media("Book");追问

不好意思呀~我复制粘贴时复制错了~我的程序中是声明了数组的长度了的~所以不是这个问题呢~实在不好意思哈~

追答

那你问题解决了吗

追问

解决了呢~我定义的me数组长度是10,但其中只放了三个元素,其余全是null,所以在排序时会空指针异常~如果把数组长度改为三的话,就没问题了~

追答

嗯 我之前也准备这样做的 只不过你没写main函数我也没运行看结果

第3个回答  2014-01-04
Media me=new Media[10];不对吧
Media[] me=new Media[10];
相似回答