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)
아마도 null 포인터를 수정해야합니까? – skaffman
내가해야한다고 가정 해. 그러나 어떻게? 나는'Entry.class'를 사용해서는 안된다고 생각합니다. 그러나 어떤 클래스가 적절한 클래스인지는 알 수 없습니다. – bdecaf