如何将 cxf-xjc-ts 与 lang3 中的 ToStringBuilder 一起使用?
How to use cxf-xjc-ts with ToStringBuilder from lang3?
在xsdtojava
期间使用cxf-xjc-ts
插件时,可以添加属性<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 个步骤:
省略 xjc 插件生成默认 'toString' 方法 - 因此它不会使用 commons-lang(没有 3)'ToStringBuilder',
直接在需要'toString'的地方使用commons-lang3'ToStringBuilder.reflectionToString'。
(在开发过程中,我遇到了 'commons-lang' 的不当使用,我的方法提供了跳过使用 'commons-lang' 和 'commons-lang3' 的可能性。
这已在 v3.1.0
中修复
@see https://issues.apache.org/jira/browse/CXFXJC-16
所以现在 -Xts 选项正在使用 lang3
。
在xsdtojava
期间使用cxf-xjc-ts
插件时,可以添加属性<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 个步骤:
省略 xjc 插件生成默认 'toString' 方法 - 因此它不会使用 commons-lang(没有 3)'ToStringBuilder',
直接在需要'toString'的地方使用commons-lang3'ToStringBuilder.reflectionToString'。
(在开发过程中,我遇到了 'commons-lang' 的不当使用,我的方法提供了跳过使用 'commons-lang' 和 'commons-lang3' 的可能性。
这已在 v3.1.0
中修复
@see https://issues.apache.org/jira/browse/CXFXJC-16
所以现在 -Xts 选项正在使用 lang3
。