使用枚举值作为字符串文字

使用存储在枚举中的值作为字符串文字的最佳方法是什么?
例如:

公共枚举模式{
一些很长的绳子,
模式1,
模式2,
模式3
}

然后,我可以使用Mode.mode1将其字符串表示形式返回为mode1。无需继续调用Mode.mode1.toString()

你不能。我想你有四个选择。这四种方法都提供了一个解决方案,但方法略有不同

选项一:在枚举上使用内置的名称()。如果您不需要任何特殊的命名格式,这是非常好的。

String name=Modes.mode1.name();//返回此枚举常量的名称,与在其枚举声明中声明的名称完全相同。

选项二:如果需要更多控制,请将覆盖属性添加到枚举中

公共枚举模式{
模式1(“花式模式1”),
模式2(“花式模式2”),
模式3(“幻想模式3”);
私有最终字符串名;
专用模式(字符串s){
name=s;
}
公共布尔值EqualName(字符串otherName){
//(otherName==null)不需要检查,因为name.equals(null)返回false
返回name.equals(otherName);
}
公共字符串toString(){
返回此.name;
}
}

选项三:使用静态韵母而不是枚举:

公共最终课程模式{
公共静态最终字符串模式_1=“花式模式1”;
公共静态最终字符串模式_2=“花式模式2”;
公共静态最终字符串模式_3=“花式模式3”;
私有模式(){}
}

选项四:接口的每个字段都是公共的、静态的和最终的:

公共接口模式{
字符串模式_1=“花式模式1”;
字符串模式_2=“花式模式2”;
字符串模式_3=“花式模式3”;
}

发表评论