gpt4 book ai didi

java - 使用 javax.validation 注解将空字符串转换为 null

转载 作者:行者123 更新时间:2023-12-01 13:09:55 24 4
gpt4 key购买 nike

我有以下变量注释用于数据验证:

@Size(min=8, max=16, message="the size of the parameter must be between 8 and 16")
private String param;

但是,param 可以为 null。仅当不为空时,才要求长度为 8-16 个字符。我面临的问题是,如果客户端应用程序(JSON API)提供空字符串,我想将其视为根本未提供,即为空。我想知道是否有一种优雅的方法可以使用javax.validation来做到这一点注释,即将空字符串转换为 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-empty-string 样板。有办法做到吗?

最佳答案

您可以实现自己的自定义约束 validator 。

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

https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-customconstraints.html

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

关于java - 使用 javax.validation 注解将空字符串转换为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com