xml - 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 字段视为常量?
如果 bean 属性未映射到流中的字段,则仍然可以使用属性元素设置常量属性值。与字段一样,所有属性都必须指定一个 name 属性,默认情况下,该属性用于从 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 的值将不依赖于它在您的类中设置或不设置的实际值。这样您就可以控制输出。您还可以尝试将属性名称更改为类中不存在的名称。
推荐阅读
- python - 如何使用python一次重命名多个文件
- c# - 我的方法中的重载错误
- r - 如何在 R 中的同一个 dygraph 中绘制多个变量图
- jquery - 使用 jQuery 响应在新选项卡中打开 url
- javascript - 如何将文本区域中的换行符替换为
- laravel - 如何在phpunit测试期间检查断点数据库中的值
- sql - 由于并发更新,Postgres 无法序列化访问
- c# - 几个月后 C# WebClient DownloadString 突然超时
- wordpress - WP WooCommerce Webhook URL 未在 Live 环境中触发
- iterator - Netlogo 土地利用变化模型:foreach list 命令