当前位置: 首页 > 知识库问答 >
问题:

是否需要重写枚举#ToString?

谢宸
2023-03-14

我刚刚注意到枚举#toStringjavadoc状态(强调为我的):

返回声明中包含的此枚举常量的名称。该方法可能被重写,尽管它通常不是必需的或不需要的。当存在更“程序员友好”的字符串窗体时,枚举类型应重写此方法。

默认情况下,ToString()name()返回相同的内容,因此即使ToString被重写,仍然可以通过name()方法访问枚举的名称。

编辑:供参考,name()的javadoc(强调与原文相同):

返回此枚举常量的名称,与在其枚举声明中声明的名称完全相同。大多数程序员应该使用toString()方法而不是这个方法,因为toString方法可能会返回一个用户更友好的名称。此方法主要是为在特定情况下使用而设计的,在特定情况下,正确与否取决于获得准确的名称,而准确的名称不会因发布而异。

共有1个答案

太叔飞翰
2023-03-14

我认为这里对“可取”一词的含义有些混淆。javadoc基本上说了两遍同样的话:重写toString()通常不是枚举工作所必需的,因此这样做是不有用的(不希望的)。

因此,为了回答您的问题:如果:A)您知道永远不必显示枚举名称的字符串表示形式,或者B)默认的字符串表示形式足以标识枚举(如果需要的话),则不希望重写toString()。

 类似资料:
  • 问题内容: 我很清楚Java中枚举的高级用法。对我来说,许多区别于普通班和告诉他们需要的观点也很清楚。 谁能举一些带有高级枚举示例代码的实际示例?可以清楚地阐述一下 我们应该避免使用类,而应该使用枚举 。 请不要混淆。我不是在问如何使用枚举或枚举的用途是什么。关于此有很多问题和答案。我正在寻找一些实时/实时/实际的例子,我们应该避免任何其他数据类型或类。 问题答案: 试试这个例子: 用法:

  • 问题内容: 例如,如果我有一个带有两种情况的枚举,它是否比布尔值占用更多的内存?语言:Java,C ++ 问题答案: 在Java中,an 是成熟的类: Java编程语言的枚举类型比其他语言的枚举类型更强大。枚举声明定义了一个类(称为枚举类型)。枚举类主体可以包括方法和其他字段。 为了查看每个文件的实际大小,让我们做一个实际的文件并检查它创建的文件的内容。 假设我们有以下枚举类: 编译以上内容并反汇

  • 问题内容: 如果我只想在循环中使用索引,则最好将函数与 还是?即使我根本不使用? 问题答案: 我会使用它,因为它更通用- 例如它将在可迭代对象和序列上工作,并且仅返回对对象的引用的开销并不算大-尽管(对我而言)按您的意图更易于阅读- 在不支持…的物体上折断

  • 问题内容: 我中的值是需要在其中包含空格的单词,但是枚举的值中不能包含空格,因此将它们全部堆积在一起。我想重写以将这些空间添加到我告诉的位置。 当我在与添加空格相同的字符串上使用时,我还希望该枚举提供正确的枚举。 例如: 电话上的,其值是返回字符串。调用相同的字符串()会返回枚举值。 我怎样才能做到这一点? 问题答案: 您可以尝试此代码。由于无法覆盖方法,因此必须定义一个自定义方法(在下面的示例代

  • 问题内容: 两列的大小写条件是相同的。在下面的语句中,我两次使用了此条件,但对于不同的列,是否还有其他方法不重复两次条件? 问题答案: thepirat000答案的变体: 查找表是在CTE中创建的,并根据需要为多列进行引用。 更新: 由于某些莫名其妙的原因,表变量现在被赋予了主键。如果有人可以真正解释一下它将如何提高性能,那么我很想听听它。从执行计划来看并不明显。