我想从枚举类型本身中检索枚举类型的名称:

enum Mammals {
    DOG(new Dog()),
    CAT(new Cat());

    public String alias;

    Mammals(AncestorOfDogAndCat a){
        this.alias=this.getClass().getName().toLowerCase();
        System.out.println(alias);
    }
}


当我实例化它们时,我得到

Main$mammals
Main$mammals


但我想要

dog
cat

最佳答案

您可以对枚举常量使用name()方法来获取枚举常量的名称:

enum Mammals {
    DOG(),
    CAT();

    public String alias;

    Mammals() {
        this.alias = name().toLowerCase();
        System.out.println(alias);
    }
}


name()方法是编译器在enum类型上自动添加的。

08-04 16:24