这段简单的代码将删除 arrayList 中的任何 Statistic(如果其属性为 null)。不幸的是,我在 if 语句 (if tempStat.serialName==null...)
的第一行收到 java.lang.NullPointerException
。想法?
public static ArrayList<Statistic> removeEmptyStats(ArrayList<Statistic> al) {
Statistic tempStat=new Statistic();
for (int i=0; i<al.size(); i++) {
tempStat=al.get(i);
if (tempStat.serialName==null || tempStat.serialPublisher==null || tempStat.serialISSN==null || tempStat.serialOnlineISSN==null) {
al.remove(i);
}
}
return al;
}
最佳答案
肯定是因为 tempStat 本身为 null。但是您需要非常小心。
假设您的列表中有 5 个元素,元素 2 无效,因此您将其删除,元素 3 现在已回落到元素 2,但接下来您将继续检查元素 3,但这现在是旧的元素 4(如果这有意义的话!)
关于Java ArrayList 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21025667/