构造函数中的Java Enum无法解析为变量

时间:2015-11-17 22:36:07

标签: java constructor enums

public static enum enuGender{
    MALE,
    FEMALE,
    UNKNOWN
}

public enuGender gender;

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Constructors &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
public Athlete(String firstName, String lastName, int age, enuGender gender) {
    super();
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
    this.gender = gender;
}

我在“运动员”课程中有这个代码,但是当我尝试在我的主要课程中实例化运动员时:

Athlete ath = new Athlete("Jim", "Denver", 33, enuGender.MALE);

我被告知enuGender无法解析变量。我不能在构造函数中传递枚举值吗?

1 个答案:

答案 0 :(得分:9)

大概enuGender枚举嵌套在Athlete类中。要从该类外部引用该枚举,必须指定封闭的类名。尝试

Athlete ath = new Athlete("Jim", "Denver", 33, Athlete.enuGender.MALE);

另一种方法是将该枚举声明从Athlete类中拉出来,这样就不需要指定封闭的类名。

此外,枚举名称遵循类名称的Java约定; Gender是一个更好的名字。