如何对 javax 验证注解进行分组
How to group javax validation annotations
public class User {
@NotBlank
@Size(min=2)
private final String firstName;
@NotBlank
@Size(min=2)
private final String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
我想验证属性 firstName 和 lastName。
但我不想每次都重复注释。
如何创建自定义注解,所以代码会像
public class User {
@UserName
private final String firstName;
@UserName
private final String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
和验证将相同
首先让我先说注释是为了给编译器或运行时提供额外的信息。例如,当你使用注释 @override
时,它的意思是告诉编译器这个方法应该覆盖 super class.
的方法
现在,在您的情况下,您正在寻找用于运行时的注释,因为您想要验证该字段不为空等。
当然你可以创建一个注释来检查你正在寻找的两个检查,但你还需要实现机制以确保那些被验证(你将创建的注释接口应该有运行时的保留策略 - @Retention(RetentionPolicy.RUNTIME)
)。当您使用 @NotNull
时,JRE 确保该字段不为 NULL,但是当您要创建自定义注释 @UserName
并检查该字段不为 NULL 且最小大小为 2 时,您必须确保在运行时此检查已处理。
阅读 this 了解如何读取 Java 中注释的值。
正如@Nico 在他的评论中建议的那样,如果有您正在寻找的注释,您可以搜索 JSR,如果没有,那么我认为您最好使用单独的注释。
Chapter 6. Creating custom constraints. Constraint composition
public class User {
@NotBlank
@Size(min=2)
private final String firstName;
@NotBlank
@Size(min=2)
private final String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
我想验证属性 firstName 和 lastName。 但我不想每次都重复注释。
如何创建自定义注解,所以代码会像
public class User {
@UserName
private final String firstName;
@UserName
private final String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
和验证将相同
首先让我先说注释是为了给编译器或运行时提供额外的信息。例如,当你使用注释 @override
时,它的意思是告诉编译器这个方法应该覆盖 super class.
现在,在您的情况下,您正在寻找用于运行时的注释,因为您想要验证该字段不为空等。
当然你可以创建一个注释来检查你正在寻找的两个检查,但你还需要实现机制以确保那些被验证(你将创建的注释接口应该有运行时的保留策略 - @Retention(RetentionPolicy.RUNTIME)
)。当您使用 @NotNull
时,JRE 确保该字段不为 NULL,但是当您要创建自定义注释 @UserName
并检查该字段不为 NULL 且最小大小为 2 时,您必须确保在运行时此检查已处理。
阅读 this 了解如何读取 Java 中注释的值。
正如@Nico 在他的评论中建议的那样,如果有您正在寻找的注释,您可以搜索 JSR,如果没有,那么我认为您最好使用单独的注释。
Chapter 6. Creating custom constraints. Constraint composition