beanio-如何将null分配给空列表



所以我使用的是beanio,我必须编写一个类型处理程序,如果通用列表为空,则将其分配给null列表。例如,我正在从XML文件中导入地址。

如果有有关地址的完整信息,则XML看起来像这样:

<Address>
<Street1>aaaaaa</Street1>
  <PostCode>00-000</PostCode>
  <City>bbbbb</City>
  <CountryCode>AA</CountryCode>
  <PhoneNo>+00 00 00000000</PhoneNo>
  <Email>aaa@aaa.aaa</Email>
</Address>

如果XML文件中没有地址的信息,则看起来像这样:

<Address />

Java类中的映射看起来像这样 - 带有beanio @seagment注释:

@Segment(xmlName = "Address", minOccurs = 0, maxOccurs = -1)
private List<Address> address;

基本上,测试类希望,如果上述列表为空,则类型处理程序应为其分配为NULL。没有列表的任何类型处理程序,分配了空括号:

address=[] 

这是我的问题,在这种情况下,有人知道处理程序应该如何寻找收藏类型吗?以前,我为字符串,ints等写了一些处理程序 - 带有@field注释的东西,一切正常。现在,我正在努力用 @段注释写作内容。有提示吗?从哪个类来继承?

自版2.1以来,您可以在集合上使用lazy="true"。从迁移到2.1文档

在2.1之前,重复指定懒惰=" true"的段作为空集合。展望未来,如果指定的懒惰和所有项目为空字符串,则将不再创建一个集合。

而不是尝试编写TypeHandler,我首先尝试以下尝试:

@Segment(xmlName = "Address", minOccurs = 0, maxOccurs = -1, lazy="true")
private List<Address> address;

我认为您所说的"空括号"只是实现toString()方法以证明列表为空的方式。

相关内容

  • 没有找到相关文章

最新更新