본문 바로가기

프로그래밍/Java

[Java] toString()과 String.valueOf() 차이점

 toString() String.valueOf()는 주로 Object값을 String형으로 형변환할 때 주로 사용하는 메소드들이다.

차이점

 두 메소드의 차이점은 바로 null값에 따른 NullPointException 발생의 유무이다.

  • toString() : null 값을 형 변환 시 NullPointerException(NPE)이 발생 / Object의 값이 String이 아니여도 출력
  • String.valueOf() : 파라미터로 null이 오면 "null"이라는 문자열을 출력

코드 예시

public static void main(String args[]) {
    Object obj = null; 
    System.out.println(obj.toString()); // NullPointerException 오류 발생 
}
public static void main(String args[]) {
    Object obj = null;
    System.out.println(String.valueOf(obj)); // String "null" 반환
}

 이러한 차이로 인해 String.valueOf()는 "null".equals(비교할 String값) 형태로 다시 한번 체크를 해줄 필요가 있다.

 

 null로 인한 에러는 소스코드 양이 방대해 질수록 디버깅하기 어렵다는 문제가 있기때문에 NullPointerException(NPE)을 방지할 수 있는 String.valueOf()를 통해 String형 변환을 해주는 것이 조금 더 바람직해 보인다.

'프로그래밍 > Java' 카테고리의 다른 글

[Java] Stream  (0) 2023.04.03
[Java] 배열 자르기  (0) 2022.10.30
[Java] scan.next() 와 scan.nextLine의 차이  (0) 2022.04.14
[Java] Enum  (0) 2022.03.07
[Java] 문자열 배열에 저장하기  (1) 2021.11.28