我的代码出了问题。我必须使用自定义类型数组(Colis []),我自己创建方法从中删除元素:
public Colis[] casiers = new Colis[MAXVALUE];
...
public void removeColis(short num, int mode) {
switch (mode) {
case NUMCASIER:
casiers[num]=null;
break;
case NUMCOLIS:
for (int i=0; i<casiers.length; i++) {
if (casiers[i].noColis==num){
casiers[i]=null;
}
}
default :
break;
}
}
当我这样做casiers[index]=null;
时似乎没有做好事
因为我抓到了一个java.lang.NullPointerException。
我的问题是如何删除casiers [index]中包含的元素?
THKS
答案 0 :(得分:1)
将casier
条目设置为null时,使用
for (int i=0; i<casiers.length; i++) {
if( casiers[i] == null ) continue;
if (casiers[i].noColis==num){
casiers[i]=null;
}
}
答案 1 :(得分:0)
在下面的代码中,您尝试访问casiers [i]而不检查是否存在任何实际存在。
for (int i=0; i<casiers.length; i++) {
if (casiers[i].noColis==num){
casiers[i]=null;
}
}
添加一项检查以查看casiers [i]是否为空
for (int i=0; i<casiers.length; i++) {
if(casiers[i] != null && casiers[i].noColis != null){
if (casiers[i].noColis==num){
casiers[i]=null;
}
}
}
这将确保casiers [i]不为null,并且在您尝试在代码中访问它们之前,casiers [i] .noColis不为null。