在给定的Java代码中,将返回什么name()方法?

时间:2018-05-31 10:22:21

标签: java enums

我的枚举定义如下

public enum EventBusAddress{
   TRADE_PAIR,
   ORDER 
}

名称方法如下调用

String trade_pair = EventBusAddress.TRADE_PAIR.name();

有人可以解释一下返回的name()方法吗?

2 个答案:

答案 0 :(得分:1)

java.lang.Enum.name()方法返回此枚举常量的名称,与其枚举声明中声明的完全相同。如果没有如上所述声明,它将获得toString()但结果为FINAL。

为什么要使用名字? name()是一个final方法,所以它不能被覆盖,所以它比toString更好。

答案 1 :(得分:0)

当您使用关键字“enum”时,会通过扩展java.lang.Enum来创建一个类。 java.lang.Enum中的一个方法是'public final String name()'。 此方法将枚举的确切声明作为String返回。如果需要,可以覆盖toString()并获取更具描述性的名称。

来自Java Doc,

{{1}}