발췌 : HTTPS : //www.cnblogs.com/Terry-Wu/p/8134732.html
예 :
문자열 이름 = NULL; @NotNull : 거짓 @NotEmpty : 거짓 @NotBlank : 잘못된 문자열 이름 = ""; @NotNull : 사실 @NotEmpty : 거짓 @NotBlank : 잘못된 문자열 이름 = ""; @NotNull : 사실 @NotEmpty : 사실 @NotBlank : 거짓 문자열 이름 =; "위대한 대답!" @NotNull : 사실 @NotEmpty : 사실 @NotBlank : 사실
세 가지 차이점에 대한 설명
@NotNull : //의 CharSequence, 컬렉션,지도 Array 객체와 null 일 수 없습니다 만, 빈 세트 (크기 = 0) 일 수도있다. @NotEmpty : //의 CharSequence, 컬렉션,지도 및 배열 객체는 null 일 수 없습니다 및 0보다 크기 관련 개체가 더. @NotBlank : // 문자열은 null가 아니고, 공백 문자의 두 종료 후 (손질 길이) 제거 길이는 0보다 크다.
(에서 버전 4.1) 정의 주석 :
1, NOTNULL @
다음과 같이 정의된다 :
@Constraint (validatedBy NotNullValidator.class = {})
이 클래스는 isValid 이렇게 정의 된 방법이 있습니다 :
공공 부울 isValid (Object 객체, ConstraintValidatorContext constraintValidatorContext) { 반환 객체 = NULL! }
객체는 다른이 보장되지, 줄에 널 (null)이 아닙니다.
2는 NotEmpty @
다음과 같이 정의된다 :
@NotNull @Size (최소 = 1)
也就是说,@NotEmpty除了@NotNull之外还需要保证@Size(min=1),这也是一个注解,这里规定最小长度等于1,也就是类似于集合非空。
3, NotBlank @
@NotNull @Constraint (validatedBy NotBlankValidator.class = {})
마찬가지로 @NotNull 외에, 클래스가 정의 된 클래스는 isValid 방법이있다 :
경우 (CharSequence를 == NULL) {// 호기심 반환 사실; } charSequence.toString ()를 호출 () 트리밍 길이 ()> 0..;
객체가 null 문자열 인 경우 경우 방법 만있는 경우와 제로의 거짓 손질 길이를 반환 할 때 흥미롭게도,이 true를 반환합니다. 문자열이 때 방법 널 (null)이지만, @NotBlank 주장 문자열이 null이되지 않도록 또한, @NotBlank 이후 @NotNull을 포함하는 경우에도 true를 돌려줍니다.