Java参数校验@Valid中@Length和@Size的用法和区别
warning:
这篇文章距离上次修改已过455天,其中的内容可能已经有所变动。
@Valid 注解通常用于结合 Hibernate Validator 实现参数的验证。在 Java 后端开发中,常用的参数验证注解有 @NotNull、@NotEmpty、@Size 等。而 @Length 和 @Size 都是用来限制字符串长度的,但它们之间有一些区别:
@Size注解通常用于集合类型(如 List、Set、Map)和数组类型的验证,它可以指定集合或数组的最小和最大元素数量。@Length注解一般用于字符串的验证,它可以指定字符串的最小和最大长度。
下面是使用 @Size 和 @Length 的例子:
import javax.validation.constraints.Size;
import javax.validation.constraints.NotEmpty;
import org.hibernate.validator.constraints.Length;
public class ExampleEntity {
@NotEmpty
@Size(min = 1, max = 10) // 适用于集合或数组
private List<String> items;
@Length(min = 5, max = 20) // 适用于字符串
private String name;
// getters and setters
}在这个例子中,items 是一个字符串列表,我们使用 @Size 注解来确保列表不为空并且其长度在 1 到 10 之间。而 name 是一个字符串,我们使用 @Length 注解来确保字符串的长度在 5 到 20 个字符之间。
评论已关闭