我返回的xml格式如下:
<UniequeTestList>
<UniequeTest>
<FirstName>a</FirstName>
<LastName>b</LastName>
</UniequeTest>
<UniequeTest>
<FirstName>a</FirstName>
<LastName>b</LastName>
</UniequeTest>
</UniequeTestList>我在List<UniequeTest>中使用JaxB对其进行解组。显然,该列表必须有多个相同的对象。我能不能在解包的同时把它统一起来呢?
我不能同时使用HashSet或LinkedHashSet来使其唯一。我的意思是,如果对象下的值是相同的,那么我想要的解组列表中的对象是唯一的对象。
发布于 2012-08-22 21:48:56
您最终可以使用JAXB Unmarshaller的侦听器:
class JAXBUnmarshallingListener extends Unmarshaller.Listener {
@Override
public void beforeUnmarshal(Object target, Object parent) {
}
@Override
public void afterUnmarshal(Object target, Object parent) {
}
}在回调方法中,您可以实现一个简单的缓存,并将JAXB新创建的对象替换为您自己的唯一实例(新的JAXB实例将被垃圾回收,因为没有人会一直引用它。注此方法不会节省实例化和这些对象的gc的成本。)
https://stackoverflow.com/questions/12074383
复制相似问题