beanio固定长度文件编写器scala-避免编写一个字段

arknldoa  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(321)

我正在尝试使用固定长度的文件beanio库从scala case类编写csv文件。
样本代码

case class employee(id:String,name:String,dob:String)

<record name="emp" class="employee">
 <field name="id" position="0" length="5" getter="#1" setter="id"/> 
 <field name="name" position="5" length="5" getter="#2" setter="name"/>
 <field name="dob" position="10" length="5" getter="#3" setter="dob"/> 
</record>

但是我想避免dob写入csv文件。如果我从xml中删除这行,它将抛出错误
除了将其从case类中删除或将字段长度设为“零”之外,有没有人建议其他方法来实现这一点。

amrnrhlw

amrnrhlw1#

把dob场当作一个常数怎么样?
如果bean属性没有Map到流中的字段,那么仍然可以使用property元素设置常量属性值。与字段一样,所有属性都必须指定name属性,默认情况下,该属性用于从bean对象获取和设置属性值。属性还需要value属性来设置属性值的文本表示形式。值文本使用与上述字段类型转换相同的规则和属性(type、typehandler和format)进行类型转换。不支持集合类型属性。
试试这个:

<record name="emp" class="employee">
 <field name="id" position="0" length="5" getter="#1" setter="id"/> 
 <field name="name" position="5" length="5" getter="#2" setter="name"/>
 <property name="dob" position="10" length="5" getter="#3" setter="dob" value="" /> 
</record>

然后,dob的值将不依赖于它设置为或不在类中的实际值。这样你就可以控制输出。您还可以尝试将属性的名称更改为类中不存在的名称。

相关问题