Reading Record/이펙티브자바 ㅤㅤㅤㅤㅤ By 쟈 미 아이템 [10] - equals는 일반 규약을 지켜 재정의하라 1. equals를 재정의 하면 안되는 경우 equals는 재정의하기 쉬워보이지만 곳곳에 함정이 있다. 문제를 회피하는 가장 쉬운 길은 아예 재정의하지 않는 것이다. ㄱ. 각 인스턴스가 본질적으로 고유할 때 값 표현 객체가 없을 때를 이야기 하는 것 같다. Bean에 등록해두는 객체 repository, controller, service 등이 이에 해당할 것 같다. DTO, Domain 객체는 값 검증이 필요할 수 있으니 equals를 재정의 해야할 수도 있다. ㄴ. 인스턴스의 논리적 동치성(logical equality)를 검사할 일이 없을 때 논리적 동치성 검사의 1가지 : Pattern의 인스턴스가 같은 정규 표현식을 나타내는 지 검사 ㄷ. 상위 클래스에서 재정의한 equals가 하위 클래스에도 .. Reading Record/이펙티브자바 2020. 1. 26. ㅤㅤㅤㅤㅤ By 오늘의 개발 아이템 [1] - 생성자 대신 정적 팩터리 메서드를 고려하라 인스턴스를 생성하는 방법은 (1) public 생성자 (2) 정적 팩터리 메서드가 있다. 여기서 정적 팩터리 메서드를 사용할 때 찾을 수 있는 장점은 다음과 같다. 1. 이름을 가질 수 있다. 생성자는 클래스명(parameters) 형태로만 구현할 수 있지만 정적팩터리 메서드는 자신의 이름을 가질 수 있다. 하지만 자주 사용되는 직관적인 정적팩터리 메서드 이름이 있으니 참고하여 구현하도록 해야한다.(포스팅 하단에 정리되어있다.) /*(1) valueOf 라는 메서드 명을 통해 반환되는 값을 유추할 수 있다. true라는 값이 Boolean 형태로 반환되어 나오겠다는 사실을 알 수 있다. */ Boolean boolean1 = Boolean.valueOf(true); /* (2) 생성자는 시그니처 중복이 .. Reading Record/이펙티브자바 2020. 1. 20. 이전 1 ··· 3 4 5 6 다음