2011-02-05 4 views
1

Java 객체의 모든 속성을 덤프해야합니다. 이 작업을 수행하는 몇 가지 기능을 발견했지만 자체 참조 및 모든 기능을 무한 재귀로 나선형 발견했습니다.자바 덤프 객체

// Android에서이 함수를 실행하지만 실제로는 문제가되지 않습니다.

+2

당신이 디버거를 사용하여 객체를 검사하는 생각이 ... 특히 자기 참조에 대해 얘기 자신의 사이트에서 예입니다 ...

Cd bj = new Cd("basement_jaxx_singles"); List order = new ArrayList(); // adds the same cd twice (two references to the same object) order.add(bj); order.add(bj); // adds itself (cycle) order.add(order); XStream xstream = new XStream(); xstream.alias("cd", Cd.class); System.out.println(xstream.toXML(order)); 

그리고 출력은? – cdmckay

답변

1

디버깅 용이거나 기본 직렬화 양식을 원한다면 XStream을 살펴보십시오. 여기

<list> 
    <cd> 
    <id>maria rita</id> 
    </cd> 
    <cd> 
    <id>basement_jaxx_singles</id> 
    </cd> 
    <cd reference="../cd[2]"/> 
    <list reference=".."/> 
</list> 
+0

xstream을 사용했지만 비공개 필드를 지원하지 않습니다 :/ – Prospero

+0

이 페이지를 확인하십시오. http://xstream.codehaus.org/tutorial.html "XStream doesn ' 들판의 가시성에 신경을 써라. " –