public enum MyType {
ONE {
public String toString() {
return "this is one";
}
},
TWO {
public String toString() {
return "this is two";
}
}
}
运行以下测试代码将产生以下结果:
public class EnumTest {
public static void main(String[] args) {
System.out.println(MyType.ONE);
System.out.println(MyType.TWO);
}
}
this is one
this is two
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(Strings.ONE.name());
}
}
enum Strings {
ONE, TWO, THREE
}
public enum EnumTest {
NAME_ONE("Name 1"),
NAME_TWO("Name 2");
private final String name;
/**
* @param name
*/
private EnumTest(final String name) {
this.name = name;
}
public String getName() {
return name;
}
}
并从main方法调用
public class Test {
public static void main (String args[]){
System.out.println(EnumTest.NAME_ONE.getName());
System.out.println(EnumTest.NAME_TWO.getName());
}
}
public enum MyType {
ONE {
public String getDescription() {
return "this is one";
}
},
TWO {
public String getDescription() {
return "this is two";
}
};
public abstract String getDescription();
}
8条答案
按热度按时间cunj1qz11#
我不知道你想做什么,但这是我实际上如何翻译你的示例代码。
或者,您可以为
text
创建一个getter方法。现在可以执行
Strings.STRING_ONE.toString();
rpppsulh2#
Enum自定义字符串值
从http://javahowto.blogspot.com/2006/10/custom-string-values-for-enum.html
java enum的默认字符串值是它的面值,或元素名称。但是,您可以通过重写toString()方法来自定义字符串值。比如说
运行以下测试代码将产生以下结果:
ctrmrzij3#
使用
name()
方法:得到
ONE
。mzsu5hc04#
将枚举名称设置为与所需的字符串相同,或者更一般地,您可以将任意属性与枚举值相关联:
常量在顶部,方法/属性在底部是很重要的。
bkkx9g8r5#
根据您所说的“将它们用作字符串”的含义,您可能不希望在这里使用枚举。在大多数情况下,The Elite Gentleman提出的解决方案将允许您通过他们的toString方法使用它们,例如。在
System.out.println(STRING_ONE)
或String s = "Hello "+STRING_TWO
中,但是当你真的需要字符串时(例如STRING_ONE.toLowerCase()
),您可能更喜欢将它们定义为常量:lb3vh1jj6#
可以将其用于字符串枚举
并从main方法调用
83qze16e7#
如果你不想使用构造函数,并且你想为方法取一个特殊的名字,可以这样尝试:
我想这是最快的解决办法。不需要使用变量final。
gkn4icbw8#
获取并设置默认值。