* fill方法是从另一个类调用的,该类有一个由选项组成的菜单,其中一个是填充选项。
我正在尝试将26个huntsingercard对象添加到构造函数之外的huntsingercard对象的数组列表中。奇怪的是,如果不使用构造函数来填充数组列表,我似乎无法做到这一点。我已经尝试了与数组相同的东西,它工作正常,但fill()方法无法将值添加到列表中。
class huntsingerdeck
{
private ArrayList<huntsingercard> list = new ArrayList<huntsingercard>();
public huntsingerdeck()
{
}
public void fill()
{
for(int a=0; a<26; list.add(a++,new huntsingercard()));
}
我到底错过了什么?我也尝试在构造函数中实例化列表,但这也与数组混淆。
答案 0 :(得分:1)
您可以使用实例初始化程序
来实现此目的public class HuntSingerDeck {
private ArrayList<HuntSingerCard> list = new ArrayList<HuntSingerCard>();
{
for(int a=0; a<26; a++) {
list.add(new HuntSingerCard()));
}
}
public HuntSingerDeck() {
//Array list is already initialised and filled at this point
}
}
在创建新实例时,在调用构造函数之前将触发实例初始值设定项。这意味着在到达构造函数的开头之前将填充arraylist。
答案 1 :(得分:0)
基本上你的for循环语法不正确,最后一个表达式应该是0到n算术运算,而不是boolean(因为add()返回boolean)
所以,你需要改变它如下(使用++表达式): 此外,由于您不想使用构造函数,您可以使用实例初始值设定项,如下所示:
class huntsingerdeck
{
private ArrayList<huntsingercard> list = new ArrayList<huntsingercard>();
public huntsingerdeck()
{
}
{
fill();
}
public void fill()
{
for(int a=0; a<26; a++) {
list.add(new huntsingercard()));
}
}
for循环语法:
for (initialization; termination; increment) {
statement(s)
}
您可以参考here