我想知道我是否可以使它工作:
public enum Items {
Weapon starterBow = new Weapon("Starter Bow", AttackSpeed.SLOW),
Weapon advancedBow = new Weapon("Advanced Bow", AttackSpeed.MEDIUM),
Weapon goldenBow = new Weapon("Golden Bow", AttackSpeed.FAST);
}
我想这样访问它:
Items.starterBow.getName()
(武器具有getName()方法)
开头的这段代码片段给了我错误,但是还有其他方法可以列出这样的对象吗? (无需创建新类)
谢谢!
答案 0 :(得分:0)
enum
在语法上充当常规类,因此您可以具有字段,方法和构造函数。
区别在于您在枚举声明期间指定了类的实例。这些实例是由jvm创建的,不能以其他任何方式创建。
这可能是您想要的:
public enum Items {
//Fields
String name;
AttackSpeed attackSpeed;
//constructor:
Items(String name, AttackSpeed attkSpd) {
this.name = name;
this.attackSpeed = attkSpd;
}
//methods:
public String getName() {
return name;
}
//listing the instances and calling the constructor:
StarterBow ("Starter Bow", AttackSpeed.SLOW),
AdvancedBow ("Advanced Bow", AttackSpeed.MEDIUM),
GoldenBow ("Golden Bow", AttackSpeed.FAST);
}