2012-02-09 3 views
0

xstream을 사용하여 응용 프로그램의 데이터를 직렬화합니다. 다른 응용 프로그램이나 XML을 읽어야하므로 XML을 수정하고 싶습니다.간단한지도에 대해 더 작은 출력을 생성하기 위해 XStream을 어떻게 사용합니까?

TreeMap<Integer,Double>TreeMap<String,Double>과 같은 매우 단순한 유형의 큰지도가 있습니다. 내 출력을 더 작게 만들고 싶습니다. this.aliasAttribute(Entry.class, "key", "key")가 null 포인터 예외와 함께 실패

<entry> 
    <int>56</int> 
    <double>38.0</double> 
</entry> 

사용하여 내 실험 불행하게도

<entry key="56">38.0</entry> 도착 : 말.

그리고 나는 TreeMap<Integer,Double>을 처리하지만 TreeMap<Object,MyComplexObject>에 대한 기본 동작을 유지 것 인 Converter를 등록/쓰기 할 방법을 이해하는 데 문제가 있습니다.

어쩌면 당신은 해결책, 감사합니다 날 가리킬 수 있습니다.


어쩌면 stacktrace가 일부 정보를 제공 할 수 있습니다.

java.lang.NullPointerException 
    at com.thoughtworks.xstream.converters.reflection.FieldDictionary.buildMap(FieldDictionary.java:128) 
    at com.thoughtworks.xstream.converters.reflection.FieldDictionary.fieldOrNull(FieldDictionary.java:113) 
    at com.thoughtworks.xstream.converters.reflection.FieldDictionary.field(FieldDictionary.java:92) 
    at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.getField(PureJavaReflectionProvider.java:181) 
    at com.thoughtworks.xstream.mapper.AttributeMapper.addAttributeFor(AttributeMapper.java:169) 
    at com.thoughtworks.xstream.XStream.useAttributeFor(XStream.java:1226) 
    at com.thoughtworks.xstream.XStream.aliasAttribute(XStream.java:1192) 
    at myproject.XstreamSerializer.<init>(XstreamSerializer.java:43) 
+0

아마도 null 포인터를 수정해야합니까? – skaffman

+0

내가해야한다고 가정 해. 그러나 어떻게? 나는'Entry.class'를 사용해서는 안된다고 생각합니다. 그러나 어떤 클래스가 적절한 클래스인지는 알 수 없습니다. – bdecaf

답변

1

는 당신을 도울 수있을 수 XStream
TreeMapConverter 있습니다.
자세한 내용은 here

+0

흠, 안타깝게도 솔루션에 도달 할 수있는 가까운 거리에있는 것 같습니다. – bdecaf

관련 문제