2013-10-25 42 views
0

我最近将项目中的BeanIO从1.2.3升级到2.0.6,并且作为升级的一部分,我不得不修改一些映射,使用Bean元素开始使用Segment元素。始终在BeanIO 2.0中初始化一个对象

但是我注意到,以前如果流中的某一行必须有小字段,那么beanio仍然会初始化映射中bean元素中定义的对象。现在在同一场景中,应该用对象设置的属性简单地设置为null。

旧代码,工作和居住的测试名属性与空的测试对象:

<bean name="testName" class="com.project.Test"> 
     <field name="test1" type="string" default=""/> 
     <field name="test2" type="string" default=""/> 
    </bean> 

新的代码无法初始化测试对象并设置测试名属性设置为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”,没有如果我删除它,它并没有解决问题)

THX,

专家组

回答

0

尝试在beanio.properties文件中设置org.beanio.createMissingBeans=true在你的classpath的根目录下。

+0

我尝试过,因为它应该在理论上工作,但事实并非如此。 – goe