我试图通过使用枚举而不是字符串数组来使我的代码对其他开发人员更具可扩展性。我有:
public enum FOO {
A, B, C, D, E
}
和
public enum BAR {
Z, Y, X, W
}
在FOO
我希望能够迭代地定义:
D, E, F(Z), F(Y), F(X), F(W)
因此,当我将项目添加到 BAR 时,它会自动将其添加到 FOO。我认为它必须是 FOO 中的一个方法,并且 BAR 几乎可以肯定是一个内部类(因此是私有的),但我不知道该怎么做。使用
for (BAR b : BAR.values()) {}
似乎至少是解决方案的一部分。如果有帮助,对于上下文,我正在使用 Pathfinder RPG 技能,并列出每个技能:
public enum SkillsEnum {
ACROBATICS,
APPRAISE,
BLUFF,
CLIMB,
CRAFT,
DIPLOMACY,
DISABLE_DEVICE,
DISGUISE,
ESCAPE_ARTIST,
FLY,
HANDLE_ANIMAL,
HEAL,
INTIMIDATE,
KNOWLEDGE(KnowledgeList.values().[0])
KNOWLEDGE(KnowledgeList.values().[1]) etc
}
enum KnowledgeList {
ARCANA,
DUNGEONEERING,
ENGINEERING,
GEOGRAPHY,
HISTORY,
LOCAL,
NATURE,
NOBILITY,
PLANES,
RELIGION
}