Univocity解析器/必需的验证(NotNull)

时间:2018-07-04 16:16:21

标签: validation univocity

我正在使用固定长度解析器导入带有注释的文件和Java bean作为映射类。 如何根据需要定义字段?找不到注释。 我可以实现一个自定义转换器来进行这种验证吗?

1 个答案:

答案 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部分。

希望这会有所帮助。