小编New*_*ter的帖子

使用 ReflectionToStringBuilder 更改特定类型出现的输出

我正在使用 Apache Common Lang ReflectionToStringBuilder 递归地为我的实体提供一个 toString 。

我有一个自定义的 ToStringStyle,我用它来稍微修改输出,并且我省略了一些我不想出现的变量。

我的问题是对于特定的对象类型,您可以指定要打印的特定属性吗?

例如:我有两个 Person 对象,每个对象都有一个 ID 值,还有一个名为 BestFriend 的关系对象。

public class Person {

int id;
String name;
int age;
Person bestfiend;


public void setBestFriend(Person bestFriend){
    this.bestfiend = bestFriend;
  }
}
Run Code Online (Sandbox Code Playgroud)

目前发生的情况是,当我将两个 Person 对象链接为 Bestfriend 时,ReflectionToStringBuilder 正在为 Bestfriend 的值写入整个 Person 对象。

Person[  
id = 0001  
name = John  
age = 25  
bestFriend=Person@25eb3d2[  
                id = 0002  
                name = Mary  
                age = 29  
                ]  
]  
Run Code Online (Sandbox Code Playgroud)

您能否指定对于所有关系对象,给我 ID 的值而不是整个 Person 对象?

Person[  
id = 0001 …
Run Code Online (Sandbox Code Playgroud)

java tostring apache-commons-lang

1
推荐指数
1
解决办法
4121
查看次数

标签 统计

apache-commons-lang ×1

java ×1

tostring ×1