Java ArrayList 中的 NullPointerException

标签 java arraylist

这段简单的代码将删除 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/

相关文章:

java - "addBasicPlayerListener(this)"错误

java - Edittext 上的 NullPointerException

java - 如何在对象数组列表中找到对象的一个​​元素?

java.lang.OutOfMemoryError - 有什么方法可以在不增加内存的情况下解决这个问题吗?

java - 自动将构造的每个 Class 对象添加到 ArrayList 中

java - spring-cloud-stream无法生成kafka消息

java - 使用嵌入式 Jetty 测试 Spring-Rest 服务

java - Java 中的正则表达式在替代匹配中使用相同的组

java - 将 Arraylist 存储在 hashmap 中

java - 在java中动态添加一个新单元到矩阵中