【发布时间】:2011-12-09 08:28:37
【问题描述】:
我创建了一个带有一个私有成员变量的枚举。 当我尝试访问成员变量时,编译状态“无法对非静态字段 memberVariable 进行静态引用”。
如果变量不是私有的(例如受保护的或受包保护的),它编译得很好。我不明白变量的范围与实现的抽象函数的类型(静态、非静态)有什么关系。
谁能启发我?
public enum EnumWithAbstractMethodAndMembers {
TheOneAndOnly(1) {
@Override
public int addValue(final int value) {
return memberVariable + value;
}
};
private final int memberVariable;
private EnumWithAbstractMethodAndMembers(final int memberVariable) {
this.memberVariable = memberVariable;
}
abstract int addValue(int value);
}
【问题讨论】: