2 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
Java 枚舉允許使用構(gòu)造函數(shù)將數(shù)據(jù)關(guān)聯(lián)到枚舉:
class Skill {
...
}
public enum SkillType {
Basic(new Skill(...)),
SpeedBuff(new Skill(...)),
Leap(new Skill(...)),
...
private final Skill skill;
public SkillType(Skill skill) {
this.skill = skill;
}
public Skill getSkill() {
return skill;
}
}
有關(guān)更多信息,請查看官方枚舉文檔中的“Planet”示例。

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
正如@Alex 提到的,您可以使用 enum 構(gòu)造函數(shù),但Class如果您不想創(chuàng)建實(shí)例,則可以鏈接類型而不是創(chuàng)建用于鏈接的實(shí)例:
public enum SkillType {
Basic(Basic.class),
SpeedBuff(SpeedBuff.class),
Leap(Leap.class),
...
private final Class skillClass;
public skillClass(Class skillClass) {
this.skillClass = skillClass;
}
public Class getSkillClass() {
return skillClass;
}
}
然后,可以使用反射技術(shù)來獲取靜態(tài)字段的信息,說明這里。
添加回答
舉報(bào)