본문 바로가기
Java & 스프링/Java

[Java] toString() 메서드

by hjhello423 2019. 5. 1.

toString?

toString()은 인스턴스의 정보를 문자열로 반환합니다.
사람이 보기 편한 형태로 바꾸거나 필요한 정보만을 골라서 반환 문자열을 정할 수 있습니다.


toString()을 만들어 보자

먼저 아래, Member 클래스의 toString()을 만들어 보겠습니다.

@NoArgsConstructor 
public class Member {
    private Long id;
    private String username;
    private int age;
}
 

lombok이나 IDE의 자동 완성을 이용하면 아주 쉽게 toString() 구현이 가능 합니다.

먼저 Intellij의 자동완성을 이용해 toString()을 자동 생성해 본다면 아래와 같은 메서드가 만들어 집니다.
(자동 생성 단축 : alt + insert)

@Override
public String toString() { 
    return "Member{" + "id=" + id + ", username='" + username + '\'' + ", age=" + age + '}'; 
}
toString()에 @Override가 선언되어있는것을 확인 할 수 있습니다.
왜 @Override가 선언 되어 있을까요?
 
자바의 기본 개념을 이해 하신다면 추측이 가능합니다.
바로 '모든 자바의 class는 Object를 상속 받고 있다.'는 부분 입니다.
바로 Object의 toString()을 재정의 하여 구현 하였기 때문에 @Override가 선언 되었던 것입니다.
 

미리 정의된 toString()

우리가 자주 사용하는 String이나 Date, wrapper 클래스 등은 toString이 오버라이딩 되어 있어서 인스턴스의 값을 특정 포맷의 문자열로 보여줍니다.

예를 들어 아래와 같이 LocalDateTime은 미리 정의된 toString을 이용하고 있습니다.

private LocalDateTime time = LocalDateTime.now();

System.out.println("시간 : " + time); 

 


참조

반응형

댓글