Handling Transitivity Issues
추이성 문제 해결하기 - 이펙티브 자바
1. 추이성이란 무엇인가?
@Override
public boolean equals(Object o) {
return o instanceof CaseInsensitiveString &&
((CaseInsensitiveString) o).s.equalsIgnoreCase(s);
}2. Point 클래스 예제
public class Point {
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Point))
return false;
Point p = (Point) o;
return p.x == x && p.y == y;
}
}3. ColorPoint 클래스
4. 대칭성 위배 코드
5. 추이성 위배 코드
6. 해결책
7. 리스코프 치환 원칙(Liskov Substitution Principle) 해결책
8. 결론
Last updated