728x90
요약
Null : 인스턴스가 생성되지 않은 상태 ( 참조 타입 발생 )
isEmpty : 길이가 0 인 상태면 true
isBlank : 문자열이 비어있거나, 빈 공백으로 이루어져 있는 상태면 true
참고 : 검색조건 등 (유효성검사) 에는 StringUtils 의 hasText를 유용하게 사용한다. -> 스프링에서 지원
null 체크, 빈문자열 , 포함여부 모두 && 조건으로 확인한다.
null
- 참조형의 기본값
- 어떠한 값으로도 초기화 되지 않는 상태
참조형(Reference Type) 은 값을 설정하지 않으면 초기화가 자동으로 null 로 진행된다.
참조타입 : 원시타입을 제외한 타입으로, 객체의 주소를 저장하는 타입.
따라서 아래 테스트 처럼 NPE 를 발생시킨다.
@Test
@DisplayName("null 은 참조형 타입의 기본값이다.")
void nullPointExceptionTest() {
Member member = new Member();
System.out.println("member = " + member.getName()); // member = null
member.getName(); // NPE 발생
}
원시타입(primitive Type) 은 초기화가 필수이다.
원시타입 : char , int , long , float ..
초기화하지 않고 값을 사용하려면 컴파일 에러가 발생한다.
@Test
@DisplayName("원시타입은 초기화가 필수이다.")
void primitiveTypeIsNotNullPointException() {
int age;
Member member = new Member();
member.setAge(age);
}
isEmpty()
- 값의 길이를 비교한다.
@Test
@DisplayName("isEmpty()는 길이를 비교한다.")
void primitiveTypeIsNotNullPointException() {
ArrayList<Member> members = new ArrayList<>();
if (members.isEmpty()) {
System.out.println("members IsEmpty"); // 출력
} else {
System.out.println("members Not empty");
}
}
@Test
@DisplayName("isEmpty()는 길이를 비교한다.")
void primitiveTypeIsNotNullPointException() {
ArrayList<Member> members = new ArrayList<>();
Member member = new Member();
member.setName("JYJ");
members.add(member);
if (members.isEmpty()) {
System.out.println("members IsEmpty");
} else {
System.out.println("members Not empty"); // 출력
}
}
isBlank()
- 문자열이 비어있거나, 빈 공백으로만 이루어져 있는 경우
@Test
@DisplayName("isBlank 과 isEmpty 차이")
void isBlankTest() {
System.out.println(" ".isBlank()); // true (빈 공백 문자열)
System.out.println("".isBlank()); // true (비어있는 문자열)
System.out.println(" ".isEmpty()); // false ( 길이 있음 )
System.out.println("".isEmpty()); // true ( 길이가 0 )
System.out.println("test".isBlank()); // false
System.out.println("test".isEmpty()); // false
}
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA] 깊은 복사 vs 얕은 복사 (0) | 2023.08.20 |
---|---|
Optional + orElse 와 orElseGet 메서드 비교 테스트 (0) | 2023.08.15 |
스트림의 중간, 최종연산 (0) | 2023.02.15 |
스트림(Stream) 의 특징 (0) | 2023.02.13 |
람다식과 함수형 인터페이스 (0) | 2023.02.13 |
댓글