Bean Validation API의 NotNull, NotEmpty, NotBlank의 차이에 대해 설명한다.
@NotNull
The annotated element must not be null. Accepts any type.
모든 타입에 대해 null을 허용하지 않는다.
@NotEmpty
The annotated element must not be null nor empty. Supported types are:
- CharSequence (length of character sequence is evaluated)
- Collection (collection size is evaluated)
- Map (map size is evaluated)
- Array (array length is evaluated)
위의 나열된 타입에 대해 null, 빈 값을 허용하지 않는다.
예로 boolean 타입의 경우는 NotEmpty를 적용할 수 없다.
@NotBlank
The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
CharSequence 타입에 대해 null을 허용하지 않고, 최소 한 개 이상의 공백 문자가 아닌 문자를 포함해야 한다.
(String은 CharSequence 구현체이므로 해당된다.)
참고
https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/package-summary.html
https://docs.oracle.com/javase/8/docs/api/java/lang/String.html
'Java' 카테고리의 다른 글
java.lang.NoClassDefFoundError: javax/annotation/Generated (0) | 2020.12.14 |
---|---|
null을 반환하는 메서드는 자제하자. (0) | 2020.11.16 |
한정적 와일드카드 (Bounded Wildcard Type) (0) | 2020.07.16 |
제네릭 메서드 (0) | 2020.07.14 |
람다 (Lambda) (0) | 2020.02.18 |