我必须选择几种类型的书籍类型,我正在考虑使用枚举,但有几种类型由两个或更多的单词组成,如“医疗,健康与健身”,“艺术与摄影” ,“科幻小说”等。
public enum Genero {
Action, Comedy, Drama, Computers, Novel, Science Fiction
}
但是我在“科幻小说”中遇到了语法错误。我尝试用双引号和简单的quoutes,但没有奏效。此枚举将用作Book类的属性。
答案 0 :(得分:16)
不,这是不可能的。枚举名称必须是有效的Java标识符 - 这意味着没有空格。通常的惯例是在所有大写字符中声明枚举名称,并使用下划线分隔单词,如下所示:
public enum Genero {
ACTION, COMEDY, DRAMA, COMPUTERS, NOVEL, SCIENCE_FICTION
}
答案 1 :(得分: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;
}
}
答案 2 :(得分:0)
这可能是你想要的:
static private enum EnumExample {
R("Sample emun with spaces"),
G("Science Fiction");
final private String value;
EnumExample(String s) {
value = s;
}
}
System.out.println(EnumExample.G.value);
System.out.println(EnumExample.valueOf("G").value);
Science Fiction
Science Fiction