Java中枚举的最佳使用
我在理解java中的Enum时遇到一些困难 假设我有一个枚举Java中枚举的最佳使用,java,enums,Java,Enums,我在理解java中的Enum时遇到一些困难 假设我有一个枚举 public enum EnumTest { TEST1("Test1"), TEST2("Test2"), TEST3("Test3"), TEST4("Test4"); private final String NAME; EnumTest (String n) { NAME=n; } public String getName() {
public enum EnumTest {
TEST1("Test1"),
TEST2("Test2"),
TEST3("Test3"),
TEST4("Test4");
private final String NAME;
EnumTest (String n) {
NAME=n;
}
public String getName() {
return NAME;
}
}
还有一个客户
public class Client {
public static void main (String [] args){
for (EnumTest vet:EnumTest.values()){
System.out.println(vet);
}
String vett1=EnumTest.TEST1.getName();
EnumTest vett2=EnumTest.TEST2;
System.out.println(vett1);
System.out.println(vett2);
}
}
哪一个有正确的声明
看起来很。。。“丑陋”对我来说,但有最好的输出格式;
vett2看起来更干净,但我不知道为什么我不满意
有申报的好习惯吗?如果你改变了
public String getName() {
return NAME;
}
到
您将获得vett1的输出,但无需显式调用getName()
这是因为java调用toString()将枚举成员转换为可以打印出来的字符串。
但是,如果您不自己定义toString()方法,它将在enums Supercals上调用toString。这取决于您试图实现的目标。在代码示例中,实现了一个名为getName的方法,该方法从枚举返回私有变量名。这是vett1的值。在上打印vett2时打印的值与通过调用枚举值上的toStirng()获得的值相同。在本例中,这两个值的情况不同,但是在枚举中实现方法可以做的远不止返回一个名称。它可以返回任何数据类型。因此,这实际上取决于您想做什么。编写一个新方法toString()以在EnumTest类上返回Name变量
public String toString() {
return NAME;
}
你到底想要实现什么?为什么您对vett2不满意?您可能想了解什么是枚举以及如何使用枚举。您要问的是枚举如何表示为字符串,在这种情况下,两个选项都可以,这取决于您需要什么。vett1是名称,vett2是枚举实例本身。您所称的“声明”实际上只是枚举的表示。这里没有最好的。你可以选择最适合你需要的。你不应该使用所有大写的字段名。它不是一个真正的常数;因此,“名字”更合适。
public String toString() {
return NAME;
}