我有一个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;