是否可以使用包含两个或更多单词的枚举的枚举类?

Aik*_*áro 8 java enums cpu-word

我必须选择几种类型的书籍类型,我正在考虑使用枚举,但有几种类型由两个或更多的单词组成,如"医疗,健康与健身","艺术与摄影","科幻小说"等

public enum Genero {
    Action, Comedy, Drama, Computers, Novel, Science Fiction
}
Run Code Online (Sandbox Code Playgroud)

但我得到了"科幻小说"的语法错误.我尝试用双引号和简单的quoutes,但没有奏效.此枚举将用作Book类的属性.

Ósc*_*pez 16

不,这是不可能的.枚举名称必须是有效的Java标识符 - 这意味着没有空格.通常的惯例是在所有大写字符中声明枚举名称,并使用下划线分隔单词,如下所示:

public enum Genero {
    ACTION, COMEDY, DRAMA, COMPUTERS, NOVEL, SCIENCE_FICTION
}
Run Code Online (Sandbox Code Playgroud)


Jef*_*rey 5

这不可能.但是,可以Science_Fiction在名称中使用下划线().您还可以覆盖该toString方法以返回您想要的任何内容(因为它似乎是您的枚举的人类可读名称):

public enum Genero {
    ACTION("Action"), COMEDY("Comedy"), DRAMA("Drama"), COMPUTERS("Computers"), NOVEL("Novel"), SCIENCE_FICTION("Science Fiction");

    private final String toString;

    private Genero(String toString) {
         this.toString = toString;
    }

    public String toString(){
         return toString;
    }
}
Run Code Online (Sandbox Code Playgroud)