我最近将项目中的 BeanIO 从 1.2.3 升级到 2.0.6,作为升级的一部分,我必须修改一些使用 Bean 元素开始使用 Segment 元素的映射。
但我注意到的是,以前如果流中的一行必须有小字段,beanio 仍然会初始化映射中 bean 元素中定义的对象。就像现在在相同的场景中,应该使用对象设置的属性被简单地设置为 null。
旧代码有效并使用空的 Test 对象填充了 testName 属性:
<bean name="testName" class="com.project.Test">
<field name="test1" type="string" default=""/>
<field name="test2" type="string" default=""/>
</bean>
不初始化 Test 对象并将 testName 属性设置为 null 的新代码:
<segment name="testName" class="com.project.Test" minOccurs="0">
<field name="test1" type="string" default="" minOccurs="0"/>
<field name="test2" type="string" default="" minOccurs="0"/>
</segment>
有没有办法强制 Segment 元素总是初始化一个对象?(是的,我确实需要保留 minOccurs="0" ,如果我删除它,它不会解决问题)
谢谢,
去