Как я могу проверить значение в Перечислении Java? - PullRequest
2 голосов
/ 05 апреля 2011

Я пытаюсь понять, как использовать перечисления в Java, и я не понимаю, как это сделать:

public enum animalSounds {
    CAT("meow"),
    DOG("Woof"),
    PIG("Oink"),

    public final String animalName;

    animalSounds(String noise) {
        this.animalName = noise
    }

}

То, что я пытаюсь сделать, это передать строкуи посмотрите, существует ли эта строка в множестве перечислимых элементов.Таким образом, я передаю «Oink» и возвращаю PIG, но если я передаю «Chirp», я получаю какую-то ошибку, поскольку нет значения перечисления с «Chirp».

Ответы [ 3 ]

0 голосов
/ 05 апреля 2011

Используйте метод values ​​() и перебирайте различные типы, выполняя свою логику.

0 голосов
/ 05 апреля 2011

Для нескольких итераций по values();для многих создайте Map<String, AnimalSounds>, как предложено здесь .

0 голосов
/ 05 апреля 2011

перечисление не лучшая вещь для того, что вы пытаетесь сделать, но вы можете попробовать

private animalSounds getAnimal(String noise) {
    for(animalSounds a : animalSounds.values())
    {
        if(a.animalName.equals(noise))
        {
            return a;
        }
    }
    throw new IllegalArgumentException();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...