【发布时间】:2013-10-18 09:31:06
【问题描述】:
考虑以下枚举类
public enum ClassA {
CHECK1("X", 0),
CHECK2("Y", 2),
CHECK3("Z", 1);
private final String id;
private final String cdValue;
private ClsA(String id, String cdValue) {
this.id = id;
this.cdValue = cdValue;
}
private String getId() {
return id;
}
private String getCdValue() {
return cdValue ;
}
private static final List<String> cdValues = new ArrayList<String>();
static {
for (ClassA clsA : ClassA.values()) {
cdValues.add(clsA.getCdValue());
}
}
public boolean isCdValue(String cdValue)
{
if clsValues.contains(cdValue)
return true;
else return false;
}
}
我的问题是isCdValue 方法是否必须是静态的。对于客户端给出的每个输入,我都必须使用此方法isCdValue。因此,方法参数cdValue 会随每个输入而变化。
如果它不能是静态的,那么我想知道如何访问此方法。请注意,我主要对学习非静态方法调用的静态感兴趣。如果它是枚举中的非静态调用,那么我们如何调用这个非静态方法。我并不是要解决如何检查cdValue 是否存在的问题。这只是一个例子。
【问题讨论】: