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

run*_*wim 3 java enums constructor

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;
}
Run Code Online (Sandbox Code Playgroud)

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

Athlete ath = new Athlete("Jim", "Denver", 33, enuGender.MALE);
Run Code Online (Sandbox Code Playgroud)

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

rge*_*man 9

据推测,enuGender枚举嵌套在Athlete类中.要从该类外部引用该枚举,必须指定封闭的类名.尝试

Athlete ath = new Athlete("Jim", "Denver", 33, Athlete.enuGender.MALE);
Run Code Online (Sandbox Code Playgroud)

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

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