이펙티브자바 아이템40
-
아이템40. @Override 애너테이션을 일관되게 사용하라책/이펙티브자바 2021. 8. 31. 13:58
자바가 기본으로 제공하는 애너테이션 중 가장 중요한 것은 @Override 이다. @Override 는 메서드 선언에만 달 수 있으며, 이 애너테이션이 달렸다는 것은 상위 타입의 메서드를 재정의 했음을 뜻한다. // equals 메서드를 재정의 했다 ??? public boolean eqauls(Item40 item40) { return item40.x == x && item40.y == y; } 위 메서드는 equals() 를 재정의 한게 아니라 다중정의해버렸다. Objects.equals() 를 재정의 하기 위해선 매개변수 타입이 Object 여야 하는데 Item40 이다. 이러한 오류는 컴파일러가 찾아낼 수 있지만, 그러려면 Object.equals() 를 재정의한다는 의도를 명시해줘야한다. // ..