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 결과>
'Java > Java' 카테고리의 다른 글
[Java] 제네릭의 이해1 (0) | 2024.04.30 |
---|---|
[공통] 자바 네이밍 규칙 (0) | 2024.04.25 |
[Java] 자주 사용하는 Stream 정리 (1) | 2024.03.15 |
[Java] 객체지향프로그래밍(OOP) / SOLID 원칙 이란? (1) | 2024.02.16 |
[JPA] JPA(+QueryDSL) vs Mybatis 사용후기 (0) | 2024.01.04 |