반응형 롬복3 [아이템12] toString을 항상 재정의하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 객체의 기본 toString 메서드는 적합한 문자열을 반환하는 경우는 거의 없습니다. toString 재정의 필요한 이유 아래 PhoneNumber 객체는 toString 을 재정의하지 않았습니다. 즉 기본 toString을 호출하도록 되어 있습니다. PhoneNumber phoneNumber = PhoneNumber.of(707, 867, 5309); System.out.println("phoneNumber : " + phoneNumber);결과는 다음과 같습니다. phoneNumber : item11.domain.PhoneNumber@b501c phoneNumber의 어떠한 값이 있는지 알아보기가.. 2022. 9. 18. [아이템11] equals를 재정의하려거든 hashCode도 재정의하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. equals 를 재정의한 클래스 모두에서 hashCode 도 재정의해야 합니다. 그렇지 않게 되면 hashCode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap 이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제를 일으키게 됩니다. Object 명세 equals 비교에 사용되는 정보가 변경되지 않았다면, 애플리케이션이 실행되는 동안 그 객체의 hashCode 메서드는 몇 번을 호출해도 일관되게 항상 같은 값을 반환해야 합니다. 단, 애플리케이션을 다시 실행한다면 이 값이 달라져도 상관없습니다. equals(Object)가 두 객체를 같다고 판단했다면, 두 객체의 hashCode.. 2022. 9. 18. [Lombok] Constructor 정리 Lombok은 도메인 개발시 불필요한 코드의 사용을 줄여주고 강력한 기능을 제공하여 줍니다. 그만큼 잘 알고 써야 하는 것이 맞고 개인적으로는 잘 사용하지 못할것 같으면 사용을 하지 말고 직접 개발하는 것이 맞다고 생각합니다. 그래서 잘 사용하기 위해서 하나씩 정리해보려고 합니다. 자바로 개발을 진행하면서 생성자를 통하여 많은 내용을 진행하게 됩니다. Lombok 에서는 생성자를 생성하여 주는 기능 또한 제공하여 주는데 다음과 같은 어노테이션을 제공합니다. @NoArgsConstructor : 기본 생성자를 만드는데 사용합니다. @AllArgsConstructor : 모든 필드의 생성자를 만드는데 사용합니다. @RequiredArgsConstructor : 필수 생성자를 만드는데 사용합니다. 각각의 기본.. 2022. 2. 1. 이전 1 다음 반응형