2

在使用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 的构建器?

4

2 回答 2

2

这已在v3.1.0 @see https://issues.apache.org/jira/browse/CXFXJC-16中修复

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

于 2017-01-11T13:52:45.790 回答
1

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

它包括两个步骤:

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

  • 在需要 'toString' 的地方直接使用 commons-lang3 'ToStringBuilder.reflectionToString'。

(在开发过程中,我遇到了不希望使用的“commons-lang”,我的方法提供了跳过使用“commons-lang”和“commons-lang3”的可能性)。

于 2016-12-05T17:10:18.650 回答