我正在使用固定长度解析器导入带有注释的文件和Java bean作为映射类。 如何根据需要定义字段?找不到注释。 我可以实现一个自定义转换器来进行这种验证吗?
答案 0 :(得分:0)
更新:
版本2.7.0引入了@Validate
批注。默认情况下,它不允许使用null或空白值。
像这样使用它:
public static class A {
@Parsed(index = 0)
@Validate(nullable = true)
public String nullNotBlank;
@Parsed(index = 1)
@Validate(oneOf = {"a", "b"})
public String aOrB;
@Parsed(index = 2)
@Validate(oneOf = {"a"}, noneOf = "b")
public String aNotB;
@Parsed(index = 3)
@Validate(allowBlanks = true, oneOf = {"a", "b"})
public String aOrBOrNull;
}
另一种方法是将注释放入您的setter方法中。
@Parsed
public void setMyField(String data) {
if(data == null){
throw new IllegalArgumentException("MyField can't be null");
}
this.myField = data;
}
如果您对许多不同的字段都有此要求,则可以创建自定义转换。我昨天updated the tutorial,所以去那里看看。
更具体地说,请查看本教程的Using your own conversions in annotations部分。
为避免在各处重复添加此类注释,请参阅同一页面的Avoiding repetitive annotations部分。
希望这会有所帮助。