-4

我正在使用 Bindy 将 csv 文件数据映射到给定的模型类。整个过程工作正常,除了布尔字段的默认值。此字段不是 csv 文件的一部分,但在模型类中是进一步处理所必需的。我已将默认值设置为true,但这将被“忽略”false ,并且如果我运行骆驼路线,该字段当前始终设置为。

这是我的模型类的片段:

@CsvRecord(separator = " ", skipFirstLine = false)
public class MyModel {

  // ... more data fields

  @DataField(pos = 8, defaultValue = "true")
  public boolean approved;

defaultValue需要一个字符串值,所以我不能将它设置为Boolean.TRUE. 我已经尝试过其他值,例如"TRUE""yes""y""1",但没有成功。

BindyCsvFactory的来源说 Format 类用于设置默认值,但它似乎无法处理布尔字段并使用默认值boolean而不是 this is false.

当前使用以下命令将语言环境设置为“en_Us” :

BindyCsvDataFormat format = new BindyCsvDataFormat("[model package]");
format.setLocale("en_US");

所以主要问题是:如何true在 Bindy 托管模型类中设置布尔字段的默认值?

4

1 回答 1

3

你不能。如果您查看 FormatFactory 代码(http://camel.apache.org/maven/camel-2.11.0/camel-bindy/apidocs/src-html/org/apache/camel/dataformat/bindy/FormatFactory。 html ) 你可以看到它不支持布尔值。

看起来你的选择是

  • 删除 @DataField 注释并使用 初始化布尔值 public boolean approved = true。将批准的字段添加到输入文件后,您必须稍后将其重新添加。
  • 将该列作为字符串或整数读取,并在代码中转换为布尔值。
于 2014-08-19T10:01:28.717 回答