본문 바로가기

프로그래밍 언어/Java

[Java] ToStringBuilder를 이용한 toString 메서드 재정의 (Override)

* toString()

모든 자바 라이브러리나 사용자가 만든 클래스들은 자바의 Object 클래스를 상속 받는다.

toString 메서드도 Object 클래스에 속해있는 메서드 중 하나다.

toString 메서드는 객체가 갖고 있는 정보를 문자열로 만들어 리턴한다.

toString 메서드는 사용자가 니즈에 맞춰 별도의 클래스에 재정의, 즉 Override 해서 사용할 수 있다.

보통은 디버깅을 위해 Model 클래스 정보를 (변수명과 각 변수의 값들을 나열한 형태) 문자열로 만들어 출력하는 데에 사용한다.

 

ex) Car 클래스에 선언된 변수: 차 이름, 차의 주인

toString 메소드 재정의 후 Car 객체 프린트시 출력 => 이름: ** , 주인: **


그런데, 이렇게 클래스 안에 선언된 변수가 계속 고정적이라면 상관없겠지만 멤버 변수가 추가되거나 삭제되는 경우 toString 메서드를 다시 수정해줘야하는 번거로움이 있다.

 

이때 사용하는 클래스가 ToStringBuilder 이다. ToStringBuilder.reflectionToString() 메소드를 사용하면 멤버 변수를 추가하더라도 .toString() 가 추가된 변수를 누락하지 않는다.

 

reflectionToString() 메소드의 파라미터에 어떤 값을 넣느냐에 따라 문자열이 출력되는 형태를 선택할 수 있다.

 

ToStringStyle의 한 예

  • DEFAULT_STYLE
  • MULTI_LINE_STYLE
  • NO_FIELD_NAMES_STYLE
  • SHORT_PREFIX_STYLE
  • SIMPLE_STYLE
  • NO_CLASS_NAME_STYLE
  • JSON_STYLE

상기와 같이 다양한 출력 스타일이 있다.

 

'프로그래밍 언어 > Java' 카테고리의 다른 글

[Java] 이름 익명 처리 (masking)  (1) 2024.04.12