본문 바로가기

개발/java

java toString메서드 사용법 및 오버라이딩 이유

반응형

객체에 toString()을 하면 원하는 문자열이 나와야할 것 같은데

 

어쩔땐 원하는 문자열이 나오고, 어쩔땐 클래스명과  16진수 형태로 나온다.

 

클래스명@16진수 형태로 나오는 경우는 toString메서드를 오버라이드(재정의)하지 않아,

 

모든 클래스의 최상위 조상인 Object의 toString메서드를 호출하기 때문이다.

 

아래 코드는 Object클래스의 toString메서드 부분이다.

 

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

 

클래스를 새로 생성하면 디버깅을 위해서라도 클래스의 정보들을 잘 드러낼 수있도록,

 

원하는 내용으로 재정의를 하는 것이 좋겠다.

(아래는 간단히 변수에 대한 정보를 가져오는 toString메서드 오버라이딩 예시)

 

    @Override
    public String toString() {
        return "변수 = " + 변수;
    }

 

반응형