我是Java编程的新手,在使枚举类型工作时遇到一些问题.在我的程序中,我声明了以下静态变量:
class Employee {
enum Gender {MALE, FEMALE};
static final double NORMAL_WORK_WEEK = 37.5;
static int numberOfFemales;
static int numberOfMales;
Gender sex;
}
Run Code Online (Sandbox Code Playgroud)
我添加了一种打印相关信息的方法,以及以下方法:
static void registerEmployeeGender(Gender sex) {
switch(sex) {
case MALE:
numberOfMales++; break;
case FEMALE:
numberOfFemales++; break;}
}
Run Code Online (Sandbox Code Playgroud)
在我运行该程序的客户端中,我无法使用最后一种方法.假设我创建了一个对象Employee1,并输入:
Employee1.registerEmployeeGender(FEMALE);
Run Code Online (Sandbox Code Playgroud)
然后我收到错误消息:FEMALE无法解析为变量.
是什么导致此错误消息?就像我说的,我对Java很新,这是我第一次尝试使用枚举类型,所以我可能做错了.如果有人能给我任何帮助,我将不胜感激.
当然,我只在这里发布了部分程序,但这是给我一个错误信息的唯一部分.如果您需要我发布更多的程序或全部内容,请告知我们.
在此先感谢您的帮助!
使用
Employee1.registerEmployeeGender(Gender.FEMALE);
Run Code Online (Sandbox Code Playgroud)
并确保您在代码中生成以下import语句
import static com.example.Employee.Gender.*;
Run Code Online (Sandbox Code Playgroud)
你需要static import枚举值,以便能够像你提出的那样静态地使用它们:
import static com.example.Employee.Gender.*;
Run Code Online (Sandbox Code Playgroud)
然而,通常的做法是只导入枚举
import com.example.Employee.Gender;
Run Code Online (Sandbox Code Playgroud)
并指定枚举名称:
Employee1.registerEmployeeGender(Gender.FEMALE);
Run Code Online (Sandbox Code Playgroud)