我有类产品:
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> products
是 null
:
您需要先分配它,然后才能使用它,因此请执行以下操作:
ArrayList<Product> products = new ArrayList<>();
而不是:
ArrayList<Product> products;
关于java - 尝试创建对象的数组列表,但应用程序因空指针异常而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37896492/