java - 尝试创建对象的数组列表,但应用程序因空指针异常而崩溃

标签 java android arraylist nullpointerexception

我有类产品:

public class Product {
     private String name;
     public Product(String name) {
         this.name = name;
     }
     public String getName() {
         return name;
     }
 }

然后在MainActivity中:

ArrayList<Product> products;
....
protected void onCreate(Bundle savedInstanceState) {
    ..... 
    for (int i = 1; i < 15; i++){
        products.add(new Product(Integer.toString(i)));
    }
}

编译和构建应用程序后崩溃并给出这样的错误代码:

java.lang.RuntimeException: Unable to start activity ComponentInfo{panchenko.ivan.canteen_application/panchenko.ivan.canteen_application.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object reference

我不知道出了什么问题。

最佳答案

一个NullPointerException意味着您在代码中引用了一个尚未分配的变量 - 即它是 null 。 Stack Overflow 上有一个很棒的答案 here如果您对此不熟悉,我建议您仔细阅读。

就您而言,您将获得 NullPointerException因为你的ArrayList<Product> productsnull :

您需要先分配它,然后才能使用它,因此请执行以下操作:

ArrayList<Product> products = new ArrayList<>();

而不是:

ArrayList<Product> products;

关于java - 尝试创建对象的数组列表,但应用程序因空指针异常而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37896492/

相关文章:

java - android - 获取软键盘按键

java - 如何在老虎机中只产生一个答案而不弹出另一个答案?

java - 解析 XML 不会显示所有项目

VSCode 中的 Android 模拟器 Chrome 调试

java - Java中的多维ArrayList

java - Selenium Takes截屏捕获 "Please wait..."消息

java - libGDX新手困惑

android - 如何实现像whatsapp blue tick mark这样的消息阅读状态?

java - java中将数组列表拆分为多个列表

Java:如何防止使用条件语句将重复项添加到 ArrayList 中?