Apache Common Lang ReflectionToStringBuilder를 사용하여 재귀 적으로 엔티티의 toString을 제공하고 있습니다.ReflectionToStringBuilder를 사용하여 특정 유형의 출력을 변경하십시오.
약간 수정 된 출력을 제공하기 위해 사용하는 사용자 지정 ToStringStyle이 있는데, 표시하지 않으려는 일부 변수를 생략했습니다.
제 질문은 특정 개체 유형에 대한 것입니다. 인쇄 할 특정 특성을 지정할 수 있습니까?
예 : 두 개의 Person 개체에 각각 ID 값이 있고 Relationship 개체에 BestFriend가 있습니다.
public class Person {
int id;
String name;
int age;
Person bestfiend;
public void setBestFriend(Person bestFriend){
this.bestfiend = bestFriend;
}
}
현재 무슨 일이 일어나고 있는지, 내가 Bestfriends로 두 사람 개체를 연결할 때, ReflectionToStringBuilder는 친한 친구의 값에 대한 전체 사람 개체를 쓰고있다.
Person[
id = 0001
name = John
age = 25
[email protected][
id = 0002
name = Mary
age = 29
]
]
모든 관계 개체에 대해 전체 Person 개체가 아니라 ID 값을 제공하도록 지정할 수 있습니까?
Person[
id = 0001
name = John
age = 25
bestFriend= 0002
'ReflectionToStringBuilder' 클래스는 필드를 제외하고 인쇄 방법을 변경하는 것만 허용합니다. ToStringBuilder 클래스를 사용하여'toString()'메소드 내에서'Person'을 출력하는 방법을 정의 할 수 있습니다. –
안녕하세요, 저는 이미 클래스에 ToStringStyle을 확장하여 클래스를 구현하여 필수 출력을 제공 할 수 있습니까 (주로 서식 지정)? – Newmanater
아마도 약간의 털이 나올 지 모르지만 그렇게 할 수는 있습니다. 'ToStringBuilder' 대신'ReflectionToStringBuilder'를 사용해야하는 이유가 있습니까? 후자의 경우 가장 친한 친구의 ID 필드를 추가하는 것이 훨씬 쉬울 것입니다. –