无法将公共arrayList引入另一个类

时间:2014-05-28 19:52:57

标签: java arraylist

在我的主类中,它被初始化为“theGame”,我有这个代码

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

Augment是一个对象初始化为没有错误的类

在另一堂课中,我有这段代码

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

但是当我引用“theGame”时,Eclipse告诉我“theGame”无法解析为变量。有谁知道这个问题的可能原因和解决方案?

编辑:嗯,它在public static void main中被称为游戏,但问题结果是一个参数问题,因为事实证明它无法访问我想要的预定义对象。

2 个答案:

答案 0 :(得分:2)

这是因为范围界定。方法installedAugments()不了解theGame的存在,因此无法使用该变量。

您可以做什么?您可以将theGame作为参数传递给installedAugments(),以便它可以使用该参考:

private ArrayList<Augment> installedAugments(MainClassName pTheGame){
   // ...
   for (Augment a : pTheGame.augments)
   // ...
}

您必须将MainClassName替换为您的班级名称(theGame的类型)。

答案 1 :(得分:0)

如果theGame是该类的名称,那么为了引用augments,您需要将augments声明为theGame类中的静态字段