[Java] toString() 과 String.valueOf() 비교 및 차이점
by coco3o반응형
toString()과 String.valueOf()는 Object 값을 String 형으로 변환할 때 주로 사용하는 메소드이다.
두 메소드는 String의 형태로 값을 변환해주는 비슷한 점이 있지만, 변경하고자 하는 값이 null이라면 차이가 있다.
두 메소드의 차이점은 바로 null값에 따른 NullPointerException의 발생 유무이다.
넘어오는 Object의 값이 null 일 때 toString() 과 String.valueOf()의 비교
- toString() : null 값을 형 변환 시 NullPointerException(NPE)이 발생 / Object의 값이 String이 아니여도 출력
- String.valueOf() : 파라미터로 null이 오면 "null"이라는 문자열을 출력
public class Main {
public static void main(String[] args) {
Object obj = null;
System.out.println(String.valueOf(obj));
System.out.println(valueOfCheck(obj));
System.out.println("-------------------------");
//NullPointerException
System.out.println(obj.toString());
}
static String valueOfCheck(Object obj) {
return obj == null ? "dev-coco.tistory.com" : String.valueOf(obj);
}
}
위와 같이 toString() 은 null값을 형변환 하면 NPE가 발생하기 때문에,
NPE를 방지할 수 있는 String.valueOf()를 사용하는 것이 좋다.
※ StringvalueOf() 사용 시 "null"에서 다른 문자열로 바꾸고 싶다면 위와 같이 메소드를 정의해서 사용하자.
반응형
'🌈Programming > Java' 카테고리의 다른 글
[Java] 객체지향 설계 원칙 SOLID 알아보기 (0) | 2022.01.29 |
---|---|
[Java] String 클래스의 contains() 메소드 (0) | 2021.10.27 |
[Java] StringTokenizer 문자열 분리하기 (split과 차이는 뭘까?) (0) | 2021.08.10 |
[Java] 자바 퍼시스턴스 프레임워크 ( Java Persistence Framework ) (0) | 2021.07.07 |
[Java] IO와 NIO의 차이점? / IO와 NIO의 선택 (0) | 2021.05.18 |
블로그의 정보
슬기로운 개발생활
coco3o