Java 是否可以使用两个或多个单词的枚举来创建枚举类?
我必须从几种类型的书籍中进行选择,我正在考虑使用Enum,但是有几种类型的书籍是由两个或两个以上的单词组成的,如“医疗、健康与健身”、“艺术与摄影”、“科幻小说”等Java 是否可以使用两个或多个单词的枚举来创建枚举类?,java,enums,word,Java,Enums,Word,我必须从几种类型的书籍中进行选择,我正在考虑使用Enum,但是有几种类型的书籍是由两个或两个以上的单词组成的,如“医疗、健康与健身”、“艺术与摄影”、“科幻小说”等 但是我在“科幻小说”中犯了一个语法错误。我试着用双引号和简单的QUOTE来表达,但都不起作用。此枚举将用作Book类的属性 不,这是不可能的。枚举名称必须是有效的Java标识符-这意味着没有空格。通常的惯例是使用所有大写字符和下划线分隔的单词声明枚举名称,如下所示: public enum Genero { ACTION,
但是我在“科幻小说”中犯了一个语法错误。我试着用双引号和简单的QUOTE来表达,但都不起作用。此枚举将用作Book类的属性 不,这是不可能的。枚举名称必须是有效的Java标识符-这意味着没有空格。通常的惯例是使用所有大写字符和下划线分隔的单词声明枚举名称,如下所示:
public enum Genero {
ACTION, COMEDY, DRAMA, COMPUTERS, NOVEL, SCIENCE_FICTION
}
这是不可能的。但是,可以在名称中使用下划线(
科幻小说
)。您还可以重写toString
方法,以返回您想要返回的任何内容(因为它似乎是为您的枚举指定一个人类可读的名称):
这可能是您想要的:
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
@TomHawtin tackline Whoopsies,现在已修复。我只想为性别属性的Book one性别赋值。比如:
Gender=grando.ACTION
我不知道在哪里可以使用构造函数或toString方法:S@Aikanáro您不必构造自己的enum对象;它们是在类加载时生成的。如果这样做,包含对象的变量将全部是大写和下划线(因为变量名不能有空格),但如果实际的枚举对象转换为字符串,它们将有标题大小写名称和空格。这是枚举中构造函数的一个很好的示例,但因为它们是枚举,你绝对应该摆脱二传手。所有字段必须由枚举中的固定值指定。但是,您可以保留getter,以便在其他类中访问它。我会将该字段设置为final
和private
@TomHawtin-tackline您是指“final private String value”还是?是的。目前您可以编写EnumExample.G.value=“喜剧”代码>。我会将类nom设置为静态,字段也设置为私有(nom static),并为该字段创建一个getter(但不是setter)。由于EMUM是在内部处理的,我认为a只会使用下划线
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;
}
}
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