我有一个带有枚举列表的类,枚举被传递给构造函数并更新为tostring,但是我不允许在类上有示例变量(需求的一部分)。如何使枚举像字符串一样输出而不添加示例?
public enum Other {
GAME_BOY("Game Boy"), MACBOOK("Macbook Pro"), IPHONE("iPhone XS"), LAPTOP("Laptop");
private final String product; //can't have instance variable
private Other(String passed) {
this.product = passed;
}
@Override
public String toString() {
return product;
}
}
4条答案
按热度按时间wgeznvg71#
您可以覆盖
toString()
对于每个元素:请在ideone.com上查看此代码的实时运行。
fsi0uk1n2#
增强型交换机
williamson接受的答案提供了可以在Java14和更高版本中改进的代码。增强的switch语句可以防止在switch案例列表中丢失任何enum对象的问题。参见:jep 361:开关表达式。
新的语法也简洁易懂。
使用新方法如下所示:
现在返回并添加新类型的设备,例如
WATCH
.编译器将标记您的
switch
声明不正确。您将看到如下消息:switch表达式没有覆盖所有可能的输入值
将附加案例添加到
switch
,从而满足编译器的要求。然后好好睡一觉,知道一个讨厌的虫子被避免了。用法示例:
t98cgbkg3#
或者,可以在tostring方法中放入switch语句:
yjghlzjz4#
那这个怎么样following:-