1

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

4

1 回答 1

0

更新:版本 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;
}

如果您对许多不同的字段有此要求,则可以创建自定义转换。我昨天更新了教程,所以看看那里。

更具体地说,请查看教程的在注释中使用您自己的转换部分。

为避免在任何地方重复添加此类注释,请参阅避免在同一页面中重复注释部分。

希望这可以帮助。

于 2018-07-06T13:55:30.910 回答