如何检查Java枚举中的值?

时间:2011-04-05 02:43:31

标签: java enums

我正在试图弄清楚如何在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 :(得分:0)

对于你想要做的事情来说,枚举并不是最好的事情,但你可以尝试

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

答案 1 :(得分:0)

使用values()方法 - 并迭代不同的类型,做你的逻辑。

答案 2 :(得分:0)

对于少数人,遍历values();对于许多人来说,按照建议here创建Map<String, AnimalSounds>