可能重复:
无法访问枚举初始化程序中的静态字段
我的情况:
enum Attribute { POSITIVE, NEGATIVE }
enum Content {
C1(Attribute.POSITIVE),
C2(Attribute.POSITIVE),
... // some other positive enum instances.
Cm(Attribute.NEGATIVE),
... // some other negative enum instances.
Cn(Attribute.NEGATIVE);
private final Atrribute a;
static int negativeOffset = 0;
private Content(Atrribute a) {
this.a = a;
if ( a.compareTo(Attribute.POSITIVE) == 0 ) {
negativeOffset ++;
}
}
public static int getNegativeOffset() { return negativeOffset; }
}
我的意图是每当我添加一个新的枚举(带有 POSITIVE 属性)时将负偏移量加一,然后我可以调用 getNegativeOffset() 来获取负枚举的起点并做任何我想做的事情。
但comlier抱怨说
Cannot refer to the static enum field Content.negativeOffset within an initializer