我有一个枚举,它包含一个属性(age
在我的情况下).我想从每个元素的方法设置它的值.以下是我的代码..
enum Gender { MALE { void setAge() { this.age = 20; } }, FEMALE { void setAge() { this.age = 30; } }; int age; public int getAge() { return age; } abstract void setAge(); } public class TestingEnum { public static void main(String[] args) { System.out.println(Gender.MALE.getAge()); System.out.println(Gender.FEMALE.getAge()); } }
但为什么在我的主方法中产生它们的值只显示0?
你永远不会打电话给setAge.您可以使用构造函数:
enum Gender { MALE (28), FEMALE (28); int age; Gender(int genderAge) { this.age = genderAge; } public int getAge() { return age; } }