我想为我的枚举类型Color
重写toString()
方法。但是,我不知道如何在Color
枚举内获取Color
实例的值。在Java中是否有这样的方法?
示例:
public enum Color {
RED,
GREEN,
BLUE,
...
public String toString() {
// return "R" for RED, "G", for GREEN, etc.
}
}
你也可以根据this
的类型进行切换,例如:
public enum Foo {
A, B, C, D
;
@Override
public String toString() {
switch (this) {
case A: return "AYE";
case B: return "BEE";
case C: return "SEE";
case D: return "DEE";
default: throw new IllegalStateException();
}
}
}
public enum Color {
RED("R"),
GREEN("G"),
BLUE("B");
private final String str;
private Color(String s){
str = s;
}
@Override
public String toString() {
return str;
}
}
你可以使用 Enum 的构造函数。我没有测试过语法,但这就是思路。
final
和几个private
修饰符。哦,还有一个分号。 - Tom Hawtin - tackline使用super
和String.substring()
:
public enum Color
{
RED,
GREEN,
BLUE;
public String toString()
{
return "The color is " + super.toString().substring(0, 1);
}
}
.toString(this.name().substring(1));
public enum Color {
RED{
public String toString() {
return "this is red";
}
},
GREEN{
public String toString() {
return "this is green";
}
},
...
}
希望它能有所帮助!