【发布时间】:2022-01-21 03:42:08
【问题描述】:
我有一类对象:
public class SubObjects {
int depth;
public SubObjects(int d) {
this.depth = d;
}
}
然后是另一类对象:
import java.util.ArrayList;
public class Objects {
private int height;
private int width;
ArrayList<SubObjects> liste;
public Objects(int h, int w) {
this.height = h;
this.width = w;
}
}
这里的想法是每个对象都应该能够保存一个高度值、一个宽度值和一个子对象列表。
例如= 2,4,[子对象1,子对象2]
以下是主要类:
import java.util.*;
public class Tryout {
public static void main(String[] args) {
SubObjects S1 = new SubObjects(7);
SubObjects S2 = new SubObjects(9);
Objects O1 = new Objects(2,4);
O1.liste.add(S1);
O1.liste.add(S2);
System.out.println(O1);
}
}
首先我创建了两个子对象。
然后我用整数 2 和 4 创建一个对象。
一切都误入歧途的是下一行:
O1.liste.add(S1);
给出的错误代码:
Cannot invoke "java.util.ArrayList.add(Object)" because "O1.liste" is null
现在我得到数组列表为空,当然我还没有添加任何东西,但是为什么我不能添加任何东西呢?
【问题讨论】:
-
您只是在声明对象,而不是为其分配值。
ArrayList<SubObjects> liste = new ArrayList<>();。如果一个对象没有分配任何值,它将默认为null,而像int这样的原始变量将默认为0。 -
一定会回到那个链接,谢谢!
标签: java object arraylist null