自定义类型集合的自定义字符串表示形式

时间:2013-03-27 03:32:13

标签: java string collections

如果我需要自定义类型集合的自定义字符串表示形式,这是集合的最佳选项 - 子类并覆盖toString(),或者只是创建一个实用程序方法来获取自定义类型集合并返回自定义字符串?还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

我倾向于创建一个实用工具方法。原因如下:

  • 逻辑上,您的自定义字符串表示形式是您在原始类之上分层的东西:它不是原始类的一部分。所以它不属于原始类的定义。
  • 创建一个子类可能只是为了覆盖一个方法
  • 创建自定义子类使得无法使用覆盖原始类的对象,原因不同。如果对这样的事情使用继承,那么继承heirarchy很快就会变得无法管理。总是喜欢组合继承!
  • 出于某些原因,您可能希望继续使用原始toString():可能需要两个字符串表示,或者某些其他库取决于原始toString()行为。在这种情况下,覆盖它会导致问题......

在“效用方法”选项中,您还有另一种选择:

  • 创建一个简单的静态实用程序方法。简单,快捷,这可能是您的首选。
  • 使用formatter.formatAsString(targetObject)等方法创建“Formatter”对象。如果您有一些可以存储在格式化程序中的格式化选项,这将非常有用。

答案 1 :(得分:0)

Java对象的http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html  toString方法旨在为对象提供字符串表示。所以覆盖toString听起来合乎逻辑。