我遇到了一个我无法解决的问题。让我们说我们有超类A:
public enum Enumeration {
A, B, C;
}
public abstract Class A {
private Enumeration e;
public void someMethod {
// do something here with 'e'.
}
}
现在让我们假设我们有一个B级。
public Class B extends A {
private final Enumeration = e.A;
}
这里我得到一个编译器警告,表示该值从未使用过。
我只想在A类中定义方法,因此我必须定义变量。但我想在变量中给变量一个新的固定值。
这不可能吗?
答案 0 :(得分:3)
不能覆盖字段。如果要将特定的枚举实例分配给类,请使用构造函数:
public abstract Class A {
private final Enumeration e;
protected A (Enumeration e) {
this.e = e;
}
public void someMethod {
// do something with 'e'.
}
}
public Class B extends A {
public B() {
super(Enumeration.A);
}
}