在我的主类中,它被初始化为“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中被称为游戏,但问题结果是一个参数问题,因为事实证明它无法访问我想要的预定义对象。
答案 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
类中的静态字段