我尝试使用 apache camel 和 bindy 解组 csv 文件。我创建了一个模型,其中一些字段注释如下:
@DataField(pos = 5, defaultValue = "")
问题是当我的 csv 文件包含一个带有空字符串的列时。然后我得到一个空值作为解组的结果。我也想在那里有空字符串。我应该如何写我的注释来得到这个?
我尝试使用 apache camel 和 bindy 解组 csv 文件。我创建了一个模型,其中一些字段注释如下:
@DataField(pos = 5, defaultValue = "")
问题是当我的 csv 文件包含一个带有空字符串的列时。然后我得到一个空值作为解组的结果。我也想在那里有空字符串。我应该如何写我的注释来得到这个?
版本 (2.18.0) 似乎有支持。
将字符串标记(来自 CSV 文件)转换为 @DataField 注释的字段时,步骤如下:
2.18.0 版引入了一个新的注解@BindyConverter,允许您指定任何符合 Format 接口的类(有效地拦截了上面的第 3 步)
自定义转换器将允许您读取默认值并根据您自己的要求进行转换(在上面的步骤 #5 中)。您的转换器还需要处理第 4 步,但这对于字符串来说是微不足道的。
我关注了@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 "";
}
}