我一直致力于一个可以安装augmetnts的程序。在船级里,我把它弄下来了:
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检测到错误是在delcaring IA后他们想要一个{,这没有意义,因为我有一个几乎相同的功能,运行得非常好。
答案 0 :(得分:0)
如果此代码应该是名为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>();
(虽然在那种情况下我会把它变成私人的)
不可能两者都有。
答案 1 :(得分:0)
此功能签名完全错误
public ArrayList<Augment> installedAugments = new ArrayList<Augment>(){
为什么?
您的功能签名不符合以下规则:
modifier returnType nameOfMethod (Parameter List) {
// method body
}
当你遵循正确的结构时
public ArrayList<Augment> installedAugments () {
.....
Rest of your code
...
return IA;
}