활동/호기심

String.valueOf()와 Integer.toString() 차이점은 Null 값 처리

ByeongJun 2023. 8. 23. 10:16
반응형
 

03-11 형 변환과 final

앞서 자바에서 사용하는 주요 자료형을 배웠다면 이제는 자바의 형 변환 과 final에 대해 알아보자. 형 변환이란 자료형을 다른 자료형으로 바꾸는 것이다. 예를 들어 123과…

wikidocs.net

int number = 42;

// Using String.valueOf()
String stringValue = String.valueOf(number); // "42" (string)

// Using Integer.toString()
String intValue = Integer.toString(number); // "42" (string)

 

String.valueOf()와 Integer.toString()

둘 다 정수 값을 문자열로 반환하는 메서드인데 차이점이 무엇인지 궁금했는데 

 

Null 값 처리에서 차이가 있다는 것을 알게 되었다. 

 

 

 

  • String.valueOf(): 매개변수로 null을 전달하면 문자열 "null"로 변환합니다. 즉, 널 값을 문자열 "null"로 변환한다.
  • Integer.toString(): 매개변수로 null을 전달할 수 없으며, NullPointerException이 발생한다.

 

다시 말해 String.valueOf()는 매개변수로 전달될 값이 'null'일 경우 

문자열 "null"로 변환한다는 것이다. 

 

그 이유는 String.valueOf()가 여러 다양한 데이터 타입을 처리하고

그 값을 문자열로 변환해주는 일반적인 *유틸리티 메서드이기 때문이라고 한다.

 

 

*유틸리티 메서드(utility method)
여러 상황에서 재사용될 수 있는 간단하면서도 일반적인 기능을 수행하는 메서드로써 프로그램의 다양한 부분에서 사용되며, 반복적인 코드 작성을 줄이고 코드의 재사용성을 높이는데 도움이 된다.

유틸리티 메서드는 주로 특정 클래스나 라이브러리에서 제공되며, 일반적으로 문자열을 숫자로 변환하거나, 날짜를 형식화하거나, 파일 조작 등의 일반적인 작업을 수행한다.
코드의 가독성을 높이고 유지 관리를 쉽게 하며, 일반적인 작업을 표준화된 방법으로 처리할 수 있게 해주며 다양한 라이브러리와 프레임워크에서 유틸리티 메서드들을 제공하여 개발자들이 더 효율적이고 품질 높은 코드를 작성할 수 있도록 도와준다.

 

public class Main {
    public static void main(String[] args) {
        Integer integerNumber = null;

        // Using String.valueOf() with null value
        String stringValue = String.valueOf(integerNumber);
        System.out.println("String.valueOf() with null: " + stringValue); // Output: "null"

        try {
            // Using Integer.toString() with null value (NullPointerException)
            String intValue = Integer.toString(integerNumber);
            System.out.println("Integer.toString() with null: " + intValue);
        } catch (NullPointerException e) {
            System.out.println("Caught NullPointerException when using Integer.toString() with null");
        }
    }
}

위의 예시에서

IntgerNumber 변수는 'null' 값을 가지고 있는데 

 

stringValue는 null 값이 출력되고

intValue에서는 'NullPointerException' 예외가 발생해 catch 블록이 실행된다는 것을 알 수 있다.

반응형