Java中枚举类型的问题

时间:2011-09-07 18:48:31

标签: java enumerate

我是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很新,这是我第一次尝试使用枚举类型,所以我可能做错了。如果有人能给我任何帮助,我将不胜感激。

当然,我只在这里发布了部分程序,但这是给我一个错误信息的唯一部分。如果您需要我发布更多的程序或全部内容,请告知我们。

提前感谢您的帮助!

3 个答案:

答案 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可能对您有所帮助。