public enum Categories {
GENERAL, LIGHTS, EFFECTS, INTERACTIVE, UI("UI"), OPTIMIZATIONS, PARSERS, ANIMATION, MATERIALS, ABOUT;
private String name;
Categories() {
name = toString().toLowerCase(Locale.getDefault());
name = name.substring(0, 1).toUpperCase(Locale.getDefault()) + name.substring(1, name.length());
}
Categories(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
在枚举中,第一行以“GENERAL,EFFECTS”开头,我想知道它们是什么?特别是UI(“UI”)。那些意味着是常数吗?为什么UI(“UI”)具有(和)其余部分没有?和/或
提前致谢...
答案 0 :(得分:2)
public enum Categories {
GENERAL, LIGHTS, EFFECTS, INTERACTIVE, UI("UI"), ...
这些代表Enum
常量可通过将类名称限定为
Categories.GENERAL, Categories.LIGHTS, Categories.UI, ...
Enums
表现得很像一个类,除了它们用于表示常量。因此,他们也可以拥有构造函数和字段。虽然GENERAL
使用了无参数构造函数
Categories() {
name = toString().toLowerCase(Locale.getDefault());
name = name.substring(0, 1).toUpperCase(Locale.getDefault()) +
name.substring(1, name.length());
}
UI("UI")
使用了另一个重载的构造函数(因为它传递了一个匹配的字符串参数)
Categories(String name) {
this.name = name;
}
就像一个类一样,这个Enum
也定义了一个成员字段
private String name;
可以通过公共getter方法访问
Categories.UI.getName();
答案 1 :(得分:1)
它本身不是常量,它是枚举值。
UI枚举使用字符串参数调用构造函数,其值为" UI"。如果你没有通过" UI"价值将是" Ui"相反,因为将调用无参数构造函数。