我遇到了以下错误的问题:
令牌“;”上的语法错误,此令牌后应为 {
语法错误,插入“}”以完成 EnumBody
public enum ImpNoise {
INSTANCE;
private int p[] = new int[512];
for(int i = 0; i < 256; i++) {
}
}
如您在上面看到的,我将整个班级减少到最低限度。我发现for循环导致了问题。但我真的不明白,它看起来还不错吧?
我遇到了以下错误的问题:
令牌“;”上的语法错误,此令牌后应为 {
语法错误,插入“}”以完成 EnumBody
public enum ImpNoise {
INSTANCE;
private int p[] = new int[512];
for(int i = 0; i < 256; i++) {
}
}
如您在上面看到的,我将整个班级减少到最低限度。我发现for循环导致了问题。但我真的不明白,它看起来还不错吧?
循环应该属于一个方法,但它不属于。
您需要将代码放在代码块中。只有字段的初始化程序可以避免这种情况。
你可能想要的是
public enum ImpNoise {
INSTANCE;
private final int[] p = new int[512];
// either
{
for(int i = 0; i < 256; i++) {
}
}
// or
private ImpNoise() {
for(int i = 0; i < 256; i++) {
}
}
}
Java 枚举是成熟的类,它们允许您编写方法、实现接口等。但肯定不能编写这样的代码 :)
您可以在此处阅读有关枚举的更多信息
您可能希望将for
循环放在方法或构造函数中。