首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JaxB实现具有唯一值的UnMarshalling

使用JaxB实现具有唯一值的UnMarshalling
EN

Stack Overflow用户
提问于 2012-08-22 21:35:22
回答 1查看 315关注 0票数 1

我返回的xml格式如下:

代码语言:javascript
复制
<UniequeTestList>
 <UniequeTest>
  <FirstName>a</FirstName>
  <LastName>b</LastName>
 </UniequeTest>
 <UniequeTest>
  <FirstName>a</FirstName>
  <LastName>b</LastName>
 </UniequeTest>
</UniequeTestList>

我在List<UniequeTest>中使用JaxB对其进行解组。显然,该列表必须有多个相同的对象。我能不能在解包的同时把它统一起来呢?

我不能同时使用HashSet或LinkedHashSet来使其唯一。我的意思是,如果对象下的值是相同的,那么我想要的解组列表中的对象是唯一的对象。

EN

回答 1

Stack Overflow用户

发布于 2012-08-22 21:48:56

您最终可以使用JAXB Unmarshaller的侦听器:

代码语言:javascript
复制
 class JAXBUnmarshallingListener extends Unmarshaller.Listener {

   @Override
   public void beforeUnmarshal(Object target, Object parent) {
   }

   @Override
   public void afterUnmarshal(Object target, Object parent) {
   }
 }

在回调方法中,您可以实现一个简单的缓存,并将JAXB新创建的对象替换为您自己的唯一实例(新的JAXB实例将被垃圾回收,因为没有人会一直引用它。注此方法不会节省实例化和这些对象的gc的成本。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12074383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档