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

希望对您有所帮助。