1

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

@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)但那是很多样板代码。

4

2 回答 2

2

是的,

根据beanio for fields的文档:

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

使用配置文件:

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

带注释:

@Field(at = 3, length = 10, default = "defaultValue")
private String field;
于 2017-02-14T15:00:43.553 回答
0

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

@Field(at = 3, length = 10, defaultValue = "whateverValue")
private String field;
于 2022-02-17T02:16:54.090 回答