最近、プロジェクトの BeanIO を 1.2.3 から 2.0.6 にアップグレードしました。そのアップグレードの一環として、Bean 要素を使用してセグメント要素の使用を開始するマッピングの一部を変更する必要がありました。
しかし、私が気付いたのは、ストリーム内の行にフィールドがほとんどない場合でも、beanio がマッピングの bean 要素で定義されたオブジェクトを初期化していたことです。同じシナリオの場合、オブジェクトで設定する必要があるプロパティは単に null に設定されます。
testName プロパティが機能し、空の Test オブジェクトを設定した古いコード:
<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>
セグメント要素が常にオブジェクトを初期化するように強制する方法はありますか? (はい、minOccurs="0" を保持する必要があります。削除しても問題は解決しません)
どうも、
行く