Univocity 解析器/必需的验证 (NotNull)
Univocity parsers / Required validation (NotNull)
我正在使用固定长度解析器导入文件和 java 带有注释的 bean 作为映射 类。
如何根据需要定义字段?找不到注释。
我可以为这样的验证实现自定义转换器吗?
更新:
版本 2.7.0 引入了 @Validate
注释。默认情况下,它不允许空值或空值。
这样使用:
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 部分。
希望对您有所帮助。
我正在使用固定长度解析器导入文件和 java 带有注释的 bean 作为映射 类。 如何根据需要定义字段?找不到注释。 我可以为这样的验证实现自定义转换器吗?
更新:
版本 2.7.0 引入了 @Validate
注释。默认情况下,它不允许空值或空值。
这样使用:
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 部分。
希望对您有所帮助。