Language/JAVA

Integer.toString() vs String.valueOf()

Integer.toString vs String.valueOf

두 함수 모두 int 즉 정수 자료형을 String으로 변경하는 메서드다.

그렇다면 두 함수간 어떤 차이가 있는지 알아보자.

 

https://www.baeldung.com/java-tostring-valueof

 

Integer.toString() vs String.valueOf() in Java | Baeldung

Learn about the Integer.toString() and String.valueOf() methods.

www.baeldung.com

 

String Class 일부

/**
 * Returns the string representation of the {@code int} argument.
 * <p>
 * The representation is exactly the one returned by the
 * {@code Integer.toString} method of one argument.
 *
 * @param   i   an {@code int}.
 * @return  a string representation of the {@code int} argument.
 * @see     java.lang.Integer#toString(int, int)
 */
public static String valueOf(int i) {
    return Integer.toString(i);
}

valueOf(int i) 메서드 내부에서 Integer.toString 메서드를 호출하여 반환하는 모습이다.

 

 

그렇다면 두 메서드의 차이점을 꼽자면 무엇이 있을까?

Null을 매개변수로 사용했을때 차이를 둘 수 있다.

더보기

There can be some confusion when passing a null object to valueOf() method because, when passing a primitive int to valueOf() method as it looks the same, but the actual method call goes to a different overloaded method. 

Integer.toString() might throw NullPointerException if given Integer object is null. String.valueOf() won't throw an exception because it'll go to String.valueOf(Object obj) method and return null. Please note, primitive int passed to String.valueOf(int i) can never be null but since there is another method String.valueOf(Object obj), we can get confused between the two overloaded methods.

Integer.toString() 은 Null이 매개변수로 들어왔을때 NullPointerException 을 던진다.

String.valueOf(int i)의 경우 String.valueOf(Object o)라는 메서드로 오버로딩 되어 null을 반환한다.