未设置字段的BeanIO默认值



我有一个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注释中给定的确切长度的空字符串?

作为一种变通方法,我可以将每个getter都封装在StringUtils.defaultString(value)中,但这只是样板代码。

是,

根据beanio的字段文件:

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

带配置文件:

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

带注释:

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

它不应该是defaultValue而不是default吗?

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

相关内容

  • 没有找到相关文章

最新更新