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

Java 试图创建对象数组列表,但应用程序因空指针异常而崩溃,java,android,arraylist,nullpointerexception,Java,Android,Arraylist,Nullpointerexception,我有一类产品: public class Product { private String name; public Product(String name) { this.name = name; } public String getName() { return name; } } 然后在活动中: ArrayList<Product> products; .... protected vo

我有一类产品:

public class Product {
     private String name;
     public Product(String name) {
         this.name = name;
     }
     public String getName() {
         return name;
     }
 }
然后在活动中:

ArrayList<Product> products;
....
protected void onCreate(Bundle savedInstanceState) {
    ..... 
    for (int i = 1; i < 15; i++){
        products.add(new Product(Integer.toString(i)));
    }
}
ArrayList产品;
....
创建时受保护的void(Bundle savedInstanceState){
..... 
对于(int i=1;i<15;i++){
添加(新产品(Integer.toString(i));
}
}
编译和构建应用程序后崩溃,并给出此类错误代码:

java.lang.RuntimeException:无法启动活动 组件信息{panchenko.ivan.食堂应用程序/panchenko.ivan.食堂应用程序.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“boolean java.util.ArrayList.add(java.lang.Object)” 参考文献


我不知道出了什么问题。

一个
空点异常
表示您在代码中引用了一个未赋值的变量,即它是
null
。有一个很好的堆栈溢出答案,如果你是新手,我建议你通读一下

在您的情况下,您得到的是
NullPointerException
,因为您的
ArrayList产品
null

在使用它之前,您需要分配它,因此请执行以下操作:

ArrayList<Product> products = new ArrayList<>();
ArrayList products=new ArrayList();
而不是:

ArrayList<Product> products;
ArrayList产品;

A
NullPointerException
表示您在代码中引用了一个未赋值的变量,即
null
。有一个很好的堆栈溢出答案,如果你是新手,我建议你通读一下

在您的情况下,您得到的是
NullPointerException
,因为您的
ArrayList产品
null

在使用它之前,您需要分配它,因此请执行以下操作:

ArrayList<Product> products = new ArrayList<>();
ArrayList products=new ArrayList();
而不是:

ArrayList<Product> products;
ArrayList产品;

ArrayList产品=新的ArrayList()


请参阅此页,它对于启动

ArrayList products=new ArrayList()非常有用

请看这个,它对启动有用