将整数和字符串添加到列表<Object>

Adding Integer and String to List<Object>

我正在尝试将不同类型的变量(字符串和整数)添加到对象列表中,但是当我在 运行 代码中时,我总是得到 NullPointerException。我已经调试过了,变量不为空。有人可以帮助我并告诉我如何将不同类型的变量添加到对象列表吗?

private int x;
private int y;
private int z;
private int stockwerk;
private String address;
private List<Object> list;

public List<Object> getAttributeList () {

    list.add(1, this.x);
    list.add(2, this.y);
    list.add(3, this.z);
    list.add(4, this.stockwerk);
    list.add(5, this.address);

    return this.list;

}

您需要使用 list = new ArrayList<Object>() 初始化列表一次(例如)。否则列表将为空并且 list.add 将抛出 NullPointerException。

您发布的代码中有几个错误;

第一名: 定义一个构造函数,您可以在其中初始化列表

MyClass(){
    list = new ArrayList<Object>();
}

2nd: 只是因为列表可以使用 object 不允许你这样做..

list.add(1, this.x);
    list.add(2, this.y);
    list.add(3, this.z);
    list.add(4, this.stockwerk);
    list.add(5, this.address);

您需要在列表中输入整数或字符串

如果您真的需要这样做:list.add(5, this.address); 是因为您试图指定插入顺序,但您是按顺序执行的,所以它没有多大意义,因为列表可以为你自动

如果你试图在列表中放入一些整数+字符串(我可以根据问题的标题推断出这一点)然后re-desing架构然后定义一个映射而不是列表,否则尝试读取列表中的数据时您会非常头疼....