정수를 문자형으로 바꾸거나 어떤 자료형을 문자열로 변경하는 작업을 자주하게 되는데
toString과 valueOf에 대한 차이가 궁금해져 찾아본 후 정리합니다.
일단 두 메소드 모두 오브젝트의 값을 String으로 변경한다.
하지만 변경하고자 하는 오브젝트가 null 일 경우의 결과가 다르다.
- toString -> NPE 오류를 발생
- valueOf -> null이라는 특수문자로 처리
예제코드
Integer i = null;
i.toString(); // Null Pointer Exception
String.valueOf(i) // No Exception
그래서 valueOf를 사용해 NPE을 피하는게 더 안전하다.
자바공식 API문서에도 잘 나와있다.
toString()메서드에 대해서: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#toString--
String.valueOf()에 대해서: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#valueOf-int-
공식문서의 Object클래스에 대해서도 보면 좋을듯 하다.
'Language > Java' 카테고리의 다른 글
[Java] 리스트 컬렉션 (List Collection) (0) | 2020.01.23 |
---|---|
[Java] 컬렉션 프레임웍(Collection Framework) (0) | 2020.01.22 |
[Java] 추상클래스(abstract class) (0) | 2020.01.18 |
[Java] 제어자 (0) | 2020.01.18 |
[Java] 다형성(Polymorphism) (0) | 2020.01.18 |