Проблема с перечислимым типом в Java - PullRequest
3 голосов
/ 07 сентября 2011

Я очень новичок в 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 ]

7 голосов
/ 07 сентября 2011

использование

Employee1.registerEmployeeGender(Gender.FEMALE);

и убедитесь, что в вашем коде сделана следующая инструкция импорта

import static com.example.Employee.Gender.*;
5 голосов
/ 07 сентября 2011

Вам нужно static import перечислить значения, чтобы иметь возможность использовать их статически так, как вы представили:

import static com.example.Employee.Gender.*;

Однако обычная практика - просто импортировать enum

import com.example.Employee.Gender;

и укажите также имя перечисления:

Employee1.registerEmployeeGender(Gender.FEMALE);
1 голос
/ 07 сентября 2011

Чтобы получить доступ к элементам enum, используйте это как "Gender.FEMALE"

Это может помочь вам больше.

...