【问题标题】:Adding Integer and String to List<Object> [duplicate]将整数和字符串添加到 List<Object> [重复]
【发布时间】:2016-05-03 15:55:33
【问题描述】:

我正在尝试将不同类型的变量(字符串和整数)添加到对象列表中,但是当我运行代码时,我总是得到 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;

}

【问题讨论】:

  • “我已经调试过了,变量不为空”——你漏掉了一个。
  • 还值得注意的是,您稍后可能会遇到空指针错误,因为您从索引 1 而不是 0 开始插入元素。所以列表中的第一个元素始终为 null ....

标签: java list object nullpointerexception add


【解决方案1】:

您需要使用list = new ArrayList&lt;Object&gt;() 初始化列表一次(例如)。否则 list 将为 null,list.add 将抛出 NullPointerException。

【讨论】:

    【解决方案2】:

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

    第一: 定义一个可以初始化列表的构造函数

    MyClass(){
        list = new ArrayList<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); 是因为您正在尝试指定插入顺序,但您是按顺序执行的,因此没有多大意义,因为列表可以自动为您执行此操作

    如果您尝试将一些整数+字符串放入列表中(我可以根据问题的标题推断出这一点)然后重新设计架构,然后定义一个映射而不是列表,否则您将有一个试图读取列表中的数据令人头疼....

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 2012-12-15
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多