有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java定义ArrayList时出错

我一直在开发一个可以安装Augments的程序。在船舶级别中,我有以下内容:

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检测到的错误是在Delia之后,他们想要一个{,这没有意义,因为我有一个几乎相同的函数,它运行得非常好


共 (2) 个答案

  1. # 1 楼答案

    如果该代码应该是一个名为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>();
    

    (如果是那样的话,我会保密)

    不可能两者都有

  2. # 2 楼答案

    这个函数签名是完全错误的

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

    为什么?

    您的函数签名不符合以下规则:

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

    当你遵循正确的结构

    public ArrayList<Augment> installedAugments () {
    
        .....
        Rest of your code
        ...
        return IA;
    }