从toString表示生成Java对象

时间:2014-09-19 05:36:40

标签: java object tostring

我们都知道如何实现 toString ()方法。它可能是稍微自定义的实现和不同的模式我们打印对象数据。

使用生成的 toString ,我们可以重新创建对象吗?我这里不是在谈论Serialization

让我解释一个场景,你可能有一个应用程序在生产中快乐地运行,当你收到一些请求并做一些操作时,你的日志打印这些对象。可能会出现一些问题。

要复制某些硬错误,您将返回单元测试用例/ mockito ,以使用类似数据重新创建问题。

  

现在如果我可以从它的toString表示中重现该对象,   因为它的所有依赖对象也实现了toString,我会的   能够清除大多数这些情景。

默认插件/工具是否有相同的功能?如果没有,它可能是我的下一个试穿项目:)

3 个答案:

答案 0 :(得分:1)

toString()方法旨在返回对象的可读表示,而不是完整表示。

如果你想将你的对象编组成一个以后可以解组的字符串,通常的选项是XML,JSON,平面文件......也许可以查看JAXB。

您可以选择自定义格式,唯一的要求是重建对象所需的所有信息都在那里,您编写自定义解析器以再次构建对象。如果所述自定义格式也恰好可读,则可以将其插入toString()。

答案 1 :(得分:0)

不,没有一般方法

(考虑返回empty string)的toString方法的情况

最好的办法是在异常的情况下记录更多详细信息,可能更精细log level

答案 2 :(得分:0)

不,你不能。

toString()仅适用于loggingdebug目的。它不适用于序列化state of an Object

如果相关对象支持serialization,请转到serialization and deserialization以了解如何执行此操作。

相关问题