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