未设置字段的BeanIO默认值?

时间:2015-02-26 18:43:34

标签: java bean-io

我有beanio的固定长度记录bean,如下所示:

@Record
public class RecordBean {
   @Field(at = 0, length = 3)
   private String field1;

   @Field(at = 3, length = 10)
   private String field2;

   //etc
}

现在我想在我的应用程序中使用该bean作为传输对象,稍后使用beanio将其解组为fixedLength记录。

问题:当我访问RecordBean的字段时,我无法确定字段是否为null,因为我自己创建了对象:

RecordBean r = new RecordBean();
r.getField1(); //may be null

问题:我可以使用beanio以默认值以某种方式初始化bean吗?例如,一个空字符串,它具有@Field注释中给出的确切长度?

我可以将StringUtils.defaultString(value)中的每个getter包装成一个变通方法,但那是很多样板代码。

1 个答案:

答案 0 :(得分:0)

是,

根据来自beanio的documentation字段:

  

默认:此字段的默认值。   解组流时,当字段文本为空或空字符串时,将在bean对象上设置此值。当编组时,当属性值为null或者ignore设置为true时使用默认值(除非禁用)。   使用为该字段配置的相同类型处理程序将默认值转换为Java对象。

使用配置文件:

<field name="myField" type="string" default="default" />

带注释:

@Field(at = 3, length = 10, default = "defaultValue")
private String field;