我在 java 上工作,我创建了一个枚举,如下所示:
public enum myEnum
{
india,
russian,
england,
north America
}
上面的示例在元素名称(即北美)中使用空格时出错。任何建议如何解决上述问题?
原文由 BSalunke 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在 java 上工作,我创建了一个枚举,如下所示:
public enum myEnum
{
india,
russian,
england,
north America
}
上面的示例在元素名称(即北美)中使用空格时出错。任何建议如何解决上述问题?
原文由 BSalunke 发布,翻译遵循 CC BY-SA 4.0 许可协议
我要继续猜猜为什么要在名称中留一个空格;因为您想将其作为字符串引用。
所以这样做:
public enum MyEnum {
INDIA("India"),
RUSSIAN("Russian"),
ENGLAND("England"),
NORTH_AMERICA("North America");
private String name;
MyEnum(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
您可以考虑覆盖字符串。
public String toString() {
return name;
}
覆盖 toString() 的一个优点是该字符串也可以在 MyEnum .valueOf(myString) 中使用。因此,重写 toString 基本上会创建枚举值的 HashMap。
原文由 Joe 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.5k 阅读
2 回答3.3k 阅读
3 回答1.8k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
2 回答1.9k 阅读
1 回答903 阅读✓ 已解决
1 回答1.9k 阅读
您不能在标识符中间放置一个空格。
这样做会结束该标识符,并且解析器会假定接下来的内容是该语句上下文中的有效标记。很少(如果有的话)地方是合法的。
传统的 Java 值名称是:
enum
可以具有关联的属性,例如人类可读的名称,例如,我对使用
toString
来提供表示层表示持矛盾态度。我更喜欢方法明确地传达它们的目的——它更具表现力和明显性。
toString
非常通用,只允许单一表示。根据上下文、参数等,可能需要多种输出格式,而toString
不允许。toString
的优点包括在对象上使用默认字符串操作,在本例中,使用valueOf
直接从人类可读版本转换为枚举值。