【发布时间】:2023-03-16 13:28:02
【问题描述】:
我们都知道如何实现 toString() 方法。我们打印对象数据的方式可能是稍微自定义的实现和不同的模式。
使用生成的toString,我们可以重新创建对象吗?我不是在这里谈论Serialization。
让我解释一个场景,您可能有一个应用程序在生产环境中愉快地运行,当您收到一些请求并执行一些操作时,您的日志会打印这些对象。并且可能会引发一些问题。
要复制某些硬错误,您将返回到您的单元测试用例/mockito,用类似的数据重新创建问题。
现在,如果我可以从它的 toString 表示中重现该对象, 因为它所有的依赖对象也实现了toString,我会 能够清除大部分情况。
有没有默认的插件/工具可以做同样的事情?如果没有,这可能是我的下一个试穿项目:)
【问题讨论】:
-
没有没有通用的方法来做到这一点。也就是说,“toString”不类似于某些语言中的“toRepr”。如果 custom 对象实现了“toString”,从而实现了“序列化”语义,那么从中重新创建 custom 对象应该同样简单,假设这样的映射可以被执行(即相关数据在字符串中被“序列化”了)。
-
由于这个问题被标记为重复,我已经发布了原始问题的答案here