gpt4 book ai didi

java - RecursiveToStringStyle 和 JSON_STYLE 如何使用 commons-lang3

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:24:14 27 4
gpt4 key购买 nike

我正在使用依赖项:

    <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>

我有以下对象:

public Class X {

private String a;
private String b;
private Y y;
}

public Class Y {
private String c;
private String d;
}

而且我需要递归地记录类 X 的内容以获取类 Y 并使用 JSON 样式。这是我的目标,也是这个问题的目的。

方法一:

ToStringStyle style = ToStringStyle.JSON_STYLE;
LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));

方法 1 结果:

{"a":"<a>","b":"<b>","y": com.<packages>.y@<hash>}

方法二:

RecursiveToStringStyle style = new RecursiveToStringStyle();
LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));

方法 2 结果:

[com.<packages>.x@<hash>[a=<a>,b=<b>,y=com.<packages>.y@<hash>[c=<c>,d=<d>]]

成功的方法:

`Merge of Approach 1 and Approach 2` but how to achieve this? 

成功方法结果(我的目标):

{"a":"<a>","b":"<b>","y":{"c":"<c>","d":"<d>"}}

最佳答案

我找到了解决方案。我需要 Override 每个 classes 的方法 toString(XY这种情况)

public Class X {

private String a;
private String b;
private Y y;

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

public Class Y {
private String c;
private String d;

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

现在,方法 1 开始工作了。

关于java - RecursiveToStringStyle 和 JSON_STYLE 如何使用 commons-lang3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33565875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com