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