不能将public 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"不能被解析为一个变量。有人知道这个问题的可能原因和解决方案吗?

编辑:嗯,它被称为在公共静态void main的游戏,但问题原来是一个参数的问题,因为它原来是它不能访问预定义的对象,我猜。

这是因为作用域。方法installedAugments()不知道theGame的存在,因此不能使用该变量。

你能做什么?您可以将theGame作为参数传递给installedAugments(),因此它可以使用该引用:

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

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

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

最新更新