equals 메소드를 구현하기 위해서 따라야 하는 것
1. == 연산자를 사용하여 equlas의 인자가 자기 자신인지 검사.
- 맞다면 반드시 true를 반환하게 할 것
2. instanceof 연산자를 사용하여 인자의 자료형이 정확한지 검사.
- 정확하지 않다면 반드시 false를 반환 (Collection class에서 많이 사용)
3. equals의 인자를 정확한 자료형으로 반환
- instanceof로 형검사를 했으므로 반드시 성공.
4. "중요" 필드 각각이 인자로 주어진 객체의 해당 필드와 일치하는지 검사.
- 모두 일치하는 경우 true 반환, 그렇지 않은 경우 false 반환
- float나 double의 경우 특별 상수가 붙으므로 별도 검사
5. equals 메서드 구현을 끝냈다면, 대칭성, 추이성, 일관성 세 속성이 만족되는지 검토
- 단위 테스트를통한 검사, null, 비 일치성까지 검사해야 함.
equals 메소드 주의해야 할 사항
1. equals를 구현할 때는 hashCode도 재정의하라.
2. 너무 머리 쓰지마라.
3. equals 메서드의 인자 형을 Object에서 다른 것으로 바꾸지 마라.
'More Programmings > Effective Java' 카테고리의 다른 글
규칙 10. toString은 항상 재정의하라. (0) | 2017.12.19 |
---|---|
규칙 9. equals를 재정의할 때는 반드시 hashCode도 재정의하라. (0) | 2017.12.19 |
규칙 7. 종료자 사용을 피하라. (0) | 2017.10.09 |
규칙 6. 유효기간이 지난 객체 참조는 폐기하라 (0) | 2017.10.09 |
규칙5. 불필요한 객체는 만들지 말라 (0) | 2017.10.09 |