Java/Java

[JAVA] .toString() String.valueOf() 차이점

Gamii 2021. 3. 6. 22:55
728x90

1. 결론 (차이점)

  • toString() :  Null PointerException(NPE)을 발생 --> 에러 발생
  • String.valueOf() : null이어도 "null"로 String으로 반환 --> 에러 발생 X

 

 

 

**** null인지 아닌지 확인하고 싶을 땐, String.valueOf() 메소드를 사용하자. **** 

 

 

 

 

 

2. 공통점

  .toString()과 String.valueOf() 두 메소드는 Object를 String으로 변환한다.

 

 

 

 

 

3. 예제

 

1) Object가 null이 아닌 경우 

Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "Ant");

//toString일 경우
String name_toString = map.get("name").toString();
System.out.println("toString일 경우 : " + name_toString);
System.out.println("객체 타입 : " + name_toString.getClass().getName());


//String.valueOf()일 경우
String name_valueOf = String.valueOf(map.get("name"));
System.out.println("String.valueOf일 경우 : " + name_valueOf);
System.out.println("객체 타입 : " + name_valueOf.getClass().getName());

<Console 결과>

 

 

2-1) Object가 null일 경우 (toString())

 

Map<String, Object> map = new HashMap<String, Object>();
map.put("name", null);

//toString일 경우
String name_toString = map.get("name").toString();
System.out.println("toString일 경우 : " + name_toString);
System.out.println("객체 타입 : " + name_toString.getClass().getName());

<Console 결과>

 

 

 

2-2) Object가 null일 경우 (String.valueOf())

Map<String, Object> map = new HashMap<String, Object>();

map.put("name", null);

//String.valueOf()일 경우
String name_valueOf = String.valueOf(map.get("name"));
System.out.println("String.valueOf일 경우 : " + name_valueOf);
System.out.println("객체 타입 : " + name_toString.getClass().getName());

<Console 결과>