kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 객체지향 프로그래밍
  • 책임
  • 결합도
  • 설계 원칙
  • 역할
  • 응집도

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

Book/Effective Java

[ITEM 12] toString을 항상 재정의하라

2022. 7. 13. 02:06

Object의 기본 toString 메서드가 해당 클래스의 적합한 문자열을 반환하는 경우는 거의 없다.

이 메서드는 단순히 클래스이름@16진수로표현한해시코드 를 반환 할 뿐이다.

 

toString의 일반 규약

  • ‘간결하면서 사람이 읽기 쉬운 형태의 유익한 정보' 를 반환해야 한다.
  • ‘모든 하위 클래스에서 이 메서드를 재정의하라'

 

객체가 가지고 있는 주요 정보들을 모두 반환하는 것이 좋고 toString을 잘 구현한 클래스는 사용하기에 쉽고 디버깅하기 쉽다.

toString을 구현할 때면 반환값의 포맷을 문서화할지 정해야 한다.

  • 포맷을 명시하면 그 객체는 표준적이고, 명확하고, 사람이 읽을 수 있게 된다.
  • 정적 팩터리나 생성자를 함께 제공하면 좋다.
  • 단점
    • 명확성을 얻을 수 있고 코드를 수정해야하는 유연성을 잃는다.

 

 

포맷 명시 여부와 상관없이 toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하라.

해당 클래스의 필드들을 접근할 수 있는 접근자를 제공해야 한다는 말이다. 접근자가 없다면 toString을 파싱하여 성능이 나빠지고 필요하지도 않는 작업을 가져올 수 있다.

'Book > Effective Java' 카테고리의 다른 글

[Item 16] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라  (0) 2022.07.21
[Item 15] 클래스와 멤버의 접근 권한을 최소화하라  (0) 2022.07.20
[Item 14] Comparable을 구현할지 고려하라  (0) 2022.07.19
[ITEM 13] clone 재정의는 주의해서 진행해라  (0) 2022.07.13
[ITEM 11] equals를 재정의하려거든 hashCode도 재정의하라  (0) 2022.07.10
[ITEM 10] equals는 일반 규약을 지켜 재정의하라  (0) 2022.07.10
[Book] ITEM 9) try-finally 대신 try-with-resource 를 사용하라  (0) 2022.03.19
[Book] ITEM 8) finalizer 와 cleaner는 피하라  (0) 2022.03.07
    'Book/Effective Java' 카테고리의 다른 글
    • [Item 14] Comparable을 구현할지 고려하라
    • [ITEM 13] clone 재정의는 주의해서 진행해라
    • [ITEM 11] equals를 재정의하려거든 hashCode도 재정의하라
    • [ITEM 10] equals는 일반 규약을 지켜 재정의하라
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바