我有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包装成一个变通方法,但那是很多样板代码。
答案 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;