我有以下公共枚舉:可枚舉是非靜態的嗎?
public enum CommandObject {
STRING/*etc.*/;
private Collection<String> validOptions = new ArrayList<>();
protected Collection<String> getValidOptions() {
return validOptions;
}
protected boolean hasValidOptions() {
return !validOptions.isEmpty();
}
protected CommandObject addValidOption(String option) {
validOptions.add(option);
return this;
}
public static CommandObject argsetOf(String... args) {
CommandObject result = STRING;
for (String option : args) {
result.addValidOption(option);
}
return result;
}
}
,但現在看來,這getValidOptions()
總是返回同一個集合不管我所說的實例。
例如,當致電argsetOf("hi")
和argsetOf("bye")
時,收集總是由["hi","bye"]
組成。
有人知道這個解決方法嗎?我需要這個枚舉有一個「非靜態」屬性。
它不需要是一個枚舉,但應該仍然很容易使用。
編號枚舉總是隱式靜態的。 –
@AndyTurner解決方法? – RoiEX
你不想使用現有命令行解析庫之一的任何原因? –