定义ArrayList会出错

时间:2014-10-26 08:36:37

标签: java arraylist

我一直致力于一个可以安装augmetnts的程序。在船级里,我把它弄下来了:

public ArrayList<Augment> installedAugments = new ArrayList<Augment>(){
    ArrayList IA = new ArrayList <Augment>();
    for (Augment a:theGame.augments){
        if (a.installed){
            IA.add(a);
        }
    }
    return IA;
}

(Game.augments是公开的)

Eclipse检测到错误是在delcaring IA后他们想要一个{,这没有意义,因为我有一个几乎相同的功能,运行得非常好。

2 个答案:

答案 0 :(得分:0)

如果此代码应该是名为installedAugments的方法,则应为:

public ArrayList<Augment> installedAugments () {
    ArrayList IA = new ArrayList <Augment>();
    for (Augment a:theGame.augments){
        if (a.installed){
            IA.add(a);
        }
    }
    return IA;
}

(假设theGame是这个类的实例变量或静态变量。如果不是这样,那么它应该是方法的参数)

如果它应该是一个名为installedAugments的类成员的声明+初始化,它应该是:

public ArrayList<Augment> installedAugments = new ArrayList<Augment>();

(虽然在那种情况下我会把它变成私人的)

不可能两者都有。

答案 1 :(得分:0)

此功能签名完全错误

public ArrayList<Augment> installedAugments = new ArrayList<Augment>(){

为什么?

您的功能签名不符合以下规则:

modifier returnType nameOfMethod (Parameter List) {
 // method body
}

当你遵循正确的结构时

public ArrayList<Augment> installedAugments () {

    .....
    Rest of your code
    ...
    return IA;
}