Chest是一个不同的类,我想把它变成一个对象,在胸部类中我只想用一堆值来声明它,包括一个将是int的ArrayList
如何正确格式化?非常感谢你的帮助!
无法正确编译。
Chest chest = new Chest(0,0,0, {0},false,false);
希望这对我正在尝试的事情有意义
这是另一个类中的arrayList
import java.util.*;
public class Chest
{
public ArrayList<Integer> idList;
public boolean closed;
public boolean opened;
public Chest(int xpos, int ypos, int numContents, ArrayList<Integer> idList, boolean opened, boolean closed)
{
this.closed = true;
this.opened = false;
}
}
我是如何修理它的
Chest chest = new Chest(0,0,0, new ArrayList<Integer>(),false,false);
谢谢micha!
答案 0 :(得分:2)
你可以这样做:
Chest chest = new Chest(0, 0, 0, new ArrayList<Integer>(), false, false);
如果要向列表中添加值,可以使用Arrays.asList()
作为快捷方式:
List<Integer> list = Arrays.asList(1,2,3);
Chest chest = new Chest(0, 0, 0, list, false, false);
答案 1 :(得分:2)
一种简单的方法:
chest = new Chest(0,0,0, Arrays.asList(5, 6, 7),false,false);
但这会导致构造函数中的ArrayList<Integer> idList
出现问题。您应该probably change到List<Integer> idList
。
如果没有,您可以使用
new ArrayList<>(Arrays.asList(5, 6, 7))
正如我的原始答案所示。
答案 2 :(得分:1)
您可以使用以下命令对其进行初始化:
new Chest(0, 0, 0, Arrays.asList(0), false, false)
请注意,返回类型为List<Integer>
而不是ArrayList<Integer>
,这可能是您想要的。可能没有必要指定在类声明中使用的接口List
的具体实现。
如果要将其初始化为空列表,可以使用:
new Chest(0, 0, 0, Collections.emptyList(), false, false)
请注意,在这两种情况下,您都会获得一个不可变列表。