【发布时间】:2012-10-28 18:28:15
【问题描述】:
如果您在枚举 api 中查看 name() 方法,它会说:
返回此枚举常量的名称,与其枚举声明中的声明完全相同。 大多数程序员应该优先使用 toString 方法而不是这个方法, 因为 toString 方法可能会返回一个对用户更友好的名称。 此方法主要设计用于正确性取决于获取确切名称的特殊情况,该名称不会因版本而异。
为什么使用toString() 更好?我的意思是当 name() 已经是 final 时,可能会覆盖 toString。因此,如果您使用 toString 并且有人覆盖它以返回一个硬编码的值,那么您的整个应用程序就会关闭......此外,如果您查看源代码,则 toString() 方法会准确返回名称,并且只返回名称。都是一样的。
【问题讨论】:
-
你可以在你的枚举中覆盖
toString(),但没有其他人可以扩展和覆盖它。你不能扩展枚举。