[Effective Java] toString는 항상 재정의하라

toString() 메소드

java.lang.Object 클래스가 toString를 메소드를 제공한다. 이 메소드의 반환값은 클래스이름 다음에 @을 붙이고 다음에 16진수로 표시된 해시 코드가 반환된다. 이 값은 사용자에게 유용한 정보를 제공하지 않는다. toString를 재정의 해서 사용자들이 알아볼 수 있도록 해야한다.

왜? 어디에 사용되길래

toString 메소드는 println, printf, 문자열 연결 연산자, assert, 디버거 등에 객체가 전달되면 자동으로 호출된다. 그리고 여러 프로그래머들은 해당하는 클래스에 대한 정보를 toString를 사용해 정보를 얻으려고 할것이다. 그래서 우리는 toString 메소드를 적절하게 구현해야한다.

어떻게?

객체내에 중요한 정보를 모두 담아 반환해야한다. 만약 전화번호를 담당하는 클래스면 해당 국가 번호, 전화번호, 지역번호등 중요한 정보는 모두 담겨야한다. 그리고 해당클래스에 주석으로 어떠한 값이 반환되는지 적어두면 다른 사용자가 알아보기가 더 쉽다.