使用javax.validation注释将空字符串转换为null

使用javax.validation注释将空字符串转换为null,java,validation,annotations,Java,Validation,Annotations,我为数据验证注释了以下变量: @Size(min=8, max=16, message="the size of the parameter must be between 8 and 16") private String param; 但是,参数可以为空。仅当其不为空时,才要求其长度为8-16个字符。我面临的问题是,如果客户端应用程序(JSONAPI)提供了一个空字符串,我想将其视为根本没有提供,即为null。我想知道是否有一种优雅的方法可以使用注释,即将空字符串转换为null,而不是我现

我为数据验证注释了以下变量:

@Size(min=8, max=16, message="the size of the parameter must be between 8 and 16")
private String param;
但是,
参数可以为空。仅当其不为空时,才要求其长度为8-16个字符。我面临的问题是,如果客户端应用程序(JSONAPI)提供了一个空字符串,我想将其视为根本没有提供,即为null。我想知道是否有一种优雅的方法可以使用
注释
,即将空字符串转换为null,而不是我现在使用的普通Java方法:

public void setParameter(String _param) {
    if(_param != null && !_param.trim().isEmpty()){
        this.param = _param;
    } else {
        this.param = null;
    }
}
我想要一个非常简单的setter:

public void setParameter(String _param) {
    this.param = _param;
}

并通过注释完成is空字符串样板文件。有办法吗?

您可以实现自己的自定义约束验证器

看这里。我已经用过很多次了,效果很好

您只需要在isValid方法中设置此条件(如果null返回“”,反之亦然)