我尝试使用apache camel和bindy解组csv文件。我创建了一个模型,其中的一些字段注释如下:
@DataField(pos = 5, defaultValue = "")
问题是我的csv文件包含一个空字符串的列。然后,由于解组,我得到一个空值。我想在那里也有空字符串。我该怎么写我的注释才能得到它?
答案 0 :(得分:1)
版本(2.18.0)似乎有支持。
将字符串标记(从CSV文件)转换为@DataField注释的字段时,步骤如下:
版本2.18.0引入了一个新的注释@BindyConverter,允许您指定任何符合Format接口的类(有效拦截上面的步骤#3)
自定义转换器允许您读取默认值并根据您自己的要求进行转换(在上面的步骤#5中)。您的转换器还需要处理步骤#4,但这对于Strings来说是微不足道的。
答案 1 :(得分:1)
我遵循@Darius X的评论,这对我有用:
@Column
@DataField(pos = 1, defaultValue = "default")
@BindyConverter(CustomConverter.class)
private String someField= "";
public static class CustomConverter implements Format<String> {
@Override
public String format(String object) {
return "";
}
@Override
public String parse(String string) {
return "";
}
}