微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BeanIO 定长文件编写器 Scala- 避免写入一个字段

如何解决BeanIO 定长文件编写器 Scala- 避免写入一个字段

我正在尝试使用固定长度文件 BeanIO 库从 Scala 案例类编写一个 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 中删除该行,它会抛出错误

除了将其从案例类中删除或将字段长度设为“零”之外,任何人都可以提出任何建议吗?

解决方法

如何将 dob 字段视为 constant

如果一个 bean 属性没有映射到流中的一个字段,一个常量 仍然可以使用属性元素设置属性值。像一个 字段,所有属性都必须指定一个名称属性,默认情况下, 用于从 bean 对象中获取和设置属性值。 属性还需要一个 value 属性来设置文本 属性值的表示。值文本被类型转换 使用相同的规则和属性(类型、类型处理器和格式) 用于上述字段类型转换。收藏类型 不支持属性。

试试这个:

<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 的值将不依赖于它在您的类中设置或不设置的实际值。这样你就可以控制输出。您还可以尝试将属性名称更改为类中不存在的名称。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。