Spring batch Spring批处理:FieldSetMapper应将字段设置为null而不是空

Spring batch Spring批处理:FieldSetMapper应将字段设置为null而不是空,spring-batch,Spring Batch,我使用spring批处理读取管道分隔的文件,该文件有7个字段。我创建了一个名为MyLineMapper的类,它扩展了spring的FieldSetMapper。此类将文件中提供的字段值映射到我的对象XYZ类型。现在的问题是,我在类扩展FieldSetMapper中得到的fieldSet对象包含字段的空值,这些字段不存在于分隔值中 例如: 假设分隔的文件格式如下:|ID | Country | City | Pin| 假设我在文件中提供以下行:| 1 | India| 如您所见,上面的行不包含城市

我使用spring批处理读取管道分隔的文件,该文件有7个字段。我创建了一个名为MyLineMapper的类,它扩展了spring的FieldSetMapper。此类将文件中提供的字段值映射到我的对象XYZ类型。现在的问题是,我在类扩展FieldSetMapper中得到的fieldSet对象包含字段的空值,这些字段不存在于分隔值中

例如: 假设分隔的文件格式如下:|ID | Country | City | Pin| 假设我在文件中提供以下行:| 1 | India| 如您所见,上面的行不包含城市和Pin的信息。因此,我希望FieldSet对象应该包含这两个fiels City和Pin的Null值,而不是空字符串。我不想要空值,因为Null将帮助我知道该字段是否实际存在于文件中

我怎样才能做到这一点?我是否需要扩展用于标记化的DelimitedLineTokenizer?或者这是一个简单的方法


任何帮助都将不胜感激。

来自FieldSetMapper javadoc

自定义将字段集值转换为所需值的方式 注入原型的类型有多种选择。你 可以直接通过CustomEditor插入PropertyEditor实例 属性,或者您可以重写createBinderObject并 initBinderDataBinder方法,也可以提供自定义字段集 实施

根据目标bean的类型,使用默认的Spring约定完成转换。如果您需要其他类型的逻辑,请编写自己的逻辑