Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java univocity能否以或替代和的方式执行验证器?_Java_Univocity - Fatal编程技术网

Java univocity能否以或替代和的方式执行验证器?

Java univocity能否以或替代和的方式执行验证器?,java,univocity,Java,Univocity,我想知道是否有任何方法以OR运算符的方式而不是AND来执行验证器。目前,如果第一个失败,他不会运行其他两个,但是我需要他运行它们,以返回给用户他应该应用于该文件的所有相应修复 我有点像: @Validate(nullable = false, validators = { NumericValidator.class, LengthValidator.class, DataValidator.class }) 我不创建单个验证,因为我希望创建常规验证,并根据字段调用特定验证 提前感谢。我解决了

我想知道是否有任何方法以OR运算符的方式而不是AND来执行验证器。目前,如果第一个失败,他不会运行其他两个,但是我需要他运行它们,以返回给用户他应该应用于该文件的所有相应修复

我有点像:

@Validate(nullable = false, validators = { NumericValidator.class, LengthValidator.class, DataValidator.class })
我不创建单个验证,因为我希望创建常规验证,并根据字段调用特定验证


提前感谢。

我解决了创建一个类似

import java.util.HashSet;
import java.util.Set;

import com.univocity.parsers.conversions.Validator;

import co.com.app.constantes.Constants;

public class CustomValidator implements Validator<Object> {

protected Set<Validator<Object>> validators = new HashSet<>();

public CustomValidator() {
    super();
}

@Override
public String validate(Object value) {
    Set<String> errors = new HashSet<>();

    validators.forEach(validator -> {
        String error = validator.validate(value);

        if (error != null) {
            errors.add(error);
        }
    });

    if (errors.isEmpty()) {
        return null;
    }

    return String.join(Constants.COMMA, errors);
    }

}
在DTO中,我使用了

@Parsed(index = 0)
@NullString(nulls = { Constants.NULL_VALUE, Constants.EMPTY_VALUE })
@Validate(nullable = false, validators = { FieldValidator.class })
private Long field; 
@Parsed(index = 0)
@NullString(nulls = { Constants.NULL_VALUE, Constants.EMPTY_VALUE })
@Validate(nullable = false, validators = { FieldValidator.class })
private Long field;