我在ArrayList
中存储对象时遇到问题。
我想使用名为ArrayList
的简单对象填充Variable
。它有2个字符串属性:name和value。问题是当我向列表添加新的Variable
对象时,先前添加的Variable
对象的属性似乎为空。此外,不是将其添加到列表的末尾,而是将新对象插入第一个位置。
以下是代码:
ArrayList<Variable> variables = new ArrayList<Variable>();
Variable author = new Variable();
author.setName("Author");
author.setValue("lusyo");
variables.add(author);
System.out.println(variables.get(0).getName());
Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login");
variables.add(scenario);
System.out.println(variables.get(0).getName());
System.out.println(variables.get(1).getName());
输出结果为:
Author
Scenario
null
如您所见,scenario
位于索引0处,但不应该如此。我无法弄清楚这段代码发生了什么。
提前感谢您的帮助!
答案 0 :(得分:4)
Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login");
有什么事打扰你吗? :)
答案 1 :(得分:3)
您正在设置作者变量属性两次:)一旦到达
Variable author = new Variable();
author.setName("Author");
author.setValue("lusyo");
以后:
Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login");
但是你从未设置场景属性。
试试这个:
Variable scenario = new Variable();
scenario.setName("Scenario");
scenario.setValue("Login");
答案 2 :(得分:3)
错误就在那里,你会找到它:
Variable scenario = new Variable();
author.setName("Scenario");
author.setValue("Login");