在阅读了String java.lang.Enum.name()
我不确定何时使用name()以及何时使用toString()的文档后。
返回此枚举常量的名称,与其枚举声明中的声明完全相同。大多数程序员应该优先使用 toString 方法,因为 toString 方法可能会返回一个对用户更友好的名称。此方法主要设计用于正确性取决于获取确切名称的特殊情况,该名称不会因版本而异。
特别是,即使文档说要更喜欢toString()
,Java 自己的StandardLocation枚举name
在我认为文档建议的情况下使用。
public String getName() { return name(); }
此外Enum
实现toString()
为,
public String toString() {
return name;
}
而且我想不出用户定义的枚举会覆盖toString()
这种情况name()
并且toString()
几乎总是完全相同的情况。
- 您能否解释一下为什么忽略文档并始终使用
name()
是一个坏主意? - 短语“不会因版本而异”呢?如果名称不会改变,是否意味着
java.lang.Enum.toString()
会改变?