我拥有的是来自 XML 的未编组的 java 对象。这个未编组的对象的部分被发送到各个类进行处理。我需要记录未编组对象的内容。我可以轻松地覆盖该toString()
方法,但问题是在这种情况下,类是在构建时使用 xjc 生成的,我无法覆盖这些类中的 toString(),因为它们将在再次生成时被删除。
我正在寻找其他替代方法来打印内容。任何的想法 ?
您可以使用 xjc 插件来生成所需的 toString。
不要toString()
用于编组。这不是它的目的。(有关该方法的java.lang.Object
用途的指南,请参阅 javadocs 。)
即使您决定手动实现编组/解组,也不应尝试toString()
用于此目的。
您可以编写一个使用反射来检查对象的实用程序类,并返回它的字符串表示形式(以您需要的任何格式)或让它直接记录字符串表示形式。
编写一个辅助类,它采用未编组的 Java 对象并使用反射为您提供其字符串表示,如果您不想使用反射,因为您知道您的 xsd 和未编组的内容,您可以对它们进行硬编码。