Back-End/JAVA
[JAVA] equals() 메소드 Overriding
은져미
2016. 8. 29. 21:18
equals() 메소드를 오버라이딩 할 때에 만족해야하는 다섯가지 조건이 존재한다.
- 재귀 (reflexive) : null 이 아닌 x 라는 객체의 x.equals(x) 결과는 항상 true 여야 한다.
- 대칭 (symmetric) : null 이 아닌 x 와 y객체가 있을 때 y.equals(x) 가 true 를 리턴했다면, x.equals(y) 도 반드시 true 를 리턴해야만 한다.
- 타동적 (transitive) : null 이 아닌 x, y, z 가 있을 때 x.equals(y) 가 반드시 true 를 리턴해야만 한다.
- 일관 (consistent) : null 이 아닌 x 와 y 가 있을 때 객체가 변경되지 않은 상황에서는 몇 번을 호출하더라도, x.equals(y) 의 결과는 항상 true 이거나 항상 false 여야만 한다.
- null 과의 비교 : null 이 아닌 x 라는 객체의 x.equals(null) 결과는 항상 false 여야만 한다.
참고 : (서적) 자바의 신