已弃用的JAXBToStringBuilder的替代方案是什么?

3
我们有一个自动生成的类,它导入了以下类:

import org.apache.cxf.jaxb.JAXBToStringBuilder;
import org.apache.cxf.jaxb.JAXBToStringStyle;

这两个方法似乎已经过时了,我正在寻找替代方案,进行了一些搜索,但没有找到类似的可用于下面这个方法的东西:

@Override
public String toString() {
    return JAXBToStringBuilder.valueOf(this, JAXBToStringStyle.DEFAULT_STYLE);
}
2个回答

4

2.7.x的javadoc中说:

该类已移动到项目org.apache.cxf.xjc-utils:cxf-xjc-runtime,因此生成的代码不必依赖于cxf

根据我的经验,只需依赖当前的cxf-xjc-runtime并更改导入即可。


1

Apache Commons有一个叫做ToStringBuilder的类,你可以在代码中引入它,以帮助将对象表示为人类可读格式的字符串。 请参阅文档此处

检查构造函数,您可以指定样式: ToStringBuilder(Object object, ToStringStyle style) 使用定义的输出样式为指定的对象构建生成器。

在那里,您可以提供您在问题中提到的默认样式:

public String toString() {
    return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE).toString();
}

由于问题涉及JAXB生成的代码:您可以使用commons-lang-plugin扩展从https://github.com/javaee/jaxb2-commons让JAXB生成使用Apache Commons的toString方法。 - kapex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接