如何在lang3中使用带有ToStringBuilder的cxf-xjc-ts?

时间:2016-09-06 09:29:42

标签: java cxf xjc cxf-xjc-plugin

cxf-xjc-ts期间使用xsdtojava插件时,可以添加属性<extensionArg>-Xts</extensionArg>以让编译器生成以下方法:

import org.apache.commons.lang.builder.ToStringBuilder;

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, JAXBToStringStyle.DEFAULT_STYLE);
    }

问题:仅在类路径上有apache.commons-lang3时,包应该是: org.apache.commons.lang3.builder.ToStringBuilder并使用org.apache.commons.lang3.builder.DEFAULT_STYLE

问题:如何告诉-ts插件在生成期间实际使用lang3中的构建器?

2 个答案:

答案 0 :(得分:1)

我想建议使用一种不同的方法。

它包括两个步骤:

  • 省略生成默认&#39; toString&#39; xjc插件的方法 - 因此它不会使用commons-lang(没有3)&#39; ToStringBuilder&#39;,

  • 使用commons-lang3&#39; ToStringBuilder.reflectionToString&#39;直接在哪里&#39; toString&#39;需要。

(在开发过程中,我遇到了不受欢迎的使用&#39; commons-lang&#39;并且我的方法提供了跳过使用&commons-lang&#39;以及&#39; commons的可能性-lang3&#39;。)

答案 1 :(得分:1)

v3.1.0修正了此问题 @see https://issues.apache.org/jira/browse/CXFXJC-16

所以现在-Xts选项正在使用lang3