개발노트/Java

[Java] StringUtil.nvlStr() 사용법 정리

dev-mylee 2025. 1. 11. 11:40

오늘도 어김없이 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, "");

 

 

 

✅ 메모

  1. null 체크는 아무리 해도 모자람
  2. nvlStr()은 문자열만! 다른 타입은 다른 처리 필요
  3. 프론트로 데이터 보낼 때 특히 주의
  4. trim()이랑 자주 같이 쓰게 됨

앞으로 API 응답 처리할 때 무조건 nvlStr() 쓰기로 결정! 코드 리뷰에서 지적받기 전에 미리미리 처리하자...

'개발노트 > Java' 카테고리의 다른 글

[Java] zip4j 로 파일 암호화/복호화 스트림 처리  (2) 2025.01.24