我试图弄清楚如何在Java中使用枚举,但我不知道如何做到这一点:

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

    public final String animalName;

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

}


我正在尝试做的是传递一个字符串,然后查看该字符串是否存在于可枚举集中。因此,我将传递“ Oink”并返回PIG,但是如果传递“ Chirp”,则会出现某种错误,因为“ Chirp”没有枚举值。

最佳答案

枚举不是您要尝试做的最好的事情,但是您可以尝试

private animalSounds getAnimal(String noise) {
    for(animalSounds a : animalSounds.values())
    {
        if(a.animalName.equals(noise))
        {
            return a;
        }
    }
    throw new IllegalArgumentException();
}

10-08 01:23