1

在我的 Bindy 模型中,我想在一个字段上设置一个 paddingChar。我在文档中看到,使用@Fixed-length 记录我可以添加一个 paddingChar 属性,但使用@CsvRecord 似乎不可能?

此代码不使用“0”填充字段命令:

@CsvRecord(separator = ";", generateHeaderColumns=true)
public class Unity{

@DataField(pos = 1, length = 3, paddingChar = '0')  String mandant;
...
4

1 回答 1

1

根据Camel 文档,您可以将pattern属性用于DoubleIntegerFloatShortLongBigDecimal字段。格式根据以下定义java.text.DecimalFormat

@DataField(pos = 1, pattern = "000")
Float mandant;

编辑:

pattern被忽略(至少对于 Camel 2.13.1),如果未设置语言环境(一种错误或至少是未记录的功能......)。因此,请执行以下操作:

final BindyCsvDataFormat bindy = new BindyCsvDataFormat(Unity.class);
bindy.setLocale(Locale.US.getISO3Country());

编辑:

我打开了一个 Jira 问题,因为我认为这应该得到解决:CAMEL-7578

编辑:

CAMEL-7578已针对 Camel 版本 2.12.5、2.13.3 和 2.14.0 进行了修复。

于 2014-07-04T10:52:54.597 回答