在初始化为"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
类中的静态字段