오늘도 어김없이 NullPointerException 발생... 문자열 null 처리 때문이었다.
StringUtil.nvlStr() 메서드 사용법 확실히 정리하고 넘어가자.
1. nvlStr() 기본 개념
일단 제일 기본적인 형태:
// null이면 빈문자열("") 반환, 아니면 원래 값 반환
String result = StringUtil.nvlStr(someString);
2. 직접 구현해보기
회사 코드 보니까 이런 식으로 구현되어 있었다:
public static String nvlStr(String str) {
return str == null ? "" : str;
}
// 오버로딩된 버전도 있음
public static String nvlStr(String str, String defaultValue) {
return str == null ? defaultValue : str;
}
3. 실제 사용 케이스
1. API 응답 처리할 때
@Getter
public class UserResponse {
private String name;
private String email;
public UserResponse(User user) {
// null이면 빈문자열로 처리
this.name = StringUtil.nvlStr(user.getName());
this.email = StringUtil.nvlStr(user.getEmail());
}
}
2. 엑셀 다운로드할 때 (이거 자주 씀!)
// null이면 엑셀에 빈칸으로 표시됨
cell.setValue(StringUtil.nvlStr(user.getAddress()));
3. 검색 조건 처리할 때
String keyword = StringUtil.nvlStr(searchDTO.getKeyword()).trim();
if (!keyword.isEmpty()) {
// 검색 처리
}
4. 다른 방법들과 비교
1. Optional 사용
// Optional 쓰면 이렇게 가능
String result = Optional.ofNullable(str).orElse("");
// 근데 좀 길어짐...
2. Objects.toString()
// 이것도 비슷한 역할
String result = Objects.toString(str, "");
✅ 메모
- null 체크는 아무리 해도 모자람
- nvlStr()은 문자열만! 다른 타입은 다른 처리 필요
- 프론트로 데이터 보낼 때 특히 주의
- trim()이랑 자주 같이 쓰게 됨
앞으로 API 응답 처리할 때 무조건 nvlStr() 쓰기로 결정! 코드 리뷰에서 지적받기 전에 미리미리 처리하자...
'개발노트 > Java' 카테고리의 다른 글
[Java] zip4j 로 파일 암호화/복호화 스트림 처리 (2) | 2025.01.24 |
---|