애너테이션 ㅤㅤㅤㅤㅤ By ds_chanin [아이템 40] @Override 애너테이션을 일관되게 사용하라 @Override 애너테이션은 메서드 선언에만 달 수 있다. 이 애너테이션은 상위 타입의 메서드를 재정의 했음을 나타낸다. 따라서 상위 클래스의 메서드를 재정의하려는 모든 메서드에 @Override 애너테이션을 달자. 예외는 단 한 경우이다. 구체 클래스에서 상위 클래스의 추상 메서드를 재정의 할 때이다. 구체 클래스인데 추상 메서드를 구현하지 않았다면 컴파일러가 이를 알려준다. 그래도 재정의 메서드에 일괄적으로 @Override 애너테이션을 달아주는 것은 좋은 선택이다. IDE를 사용한다면 IDE는 재정의한 메서드에 대해 @Override 를 붙이도록 권장할 것이다. 재정의할 의도였으나 실수로 새로운 메서드를 추가했을 때 컴파일러가 알려주는 보완재 역할을 할 것이다. 인터페이스의 메서드를 재정의 할 때.. Reading Record/이펙티브자바 2020. 6. 30. ㅤㅤㅤㅤㅤ By ds_chanin [아이템 39] 명명 패턴보다 애너테이션을 사용하라 명명 패턴 변수, 함수의 이름을 일관된 방식으로 작성하는 패턴 단점 오타나면 안된다. 명명패턴을 써야하는 곳(의도한 곳)에서만 쓸거라는 보장이 없다. 명명패턴을 적용한 요소를 매개변수로 전달할 방법이 마땅치 않다. 따라서 애너테이션으로 해결할 수 있는 일을 명명패턴으로 처리할 이유가 없다. 일단 자바에서 제공하는 애너테이션을 사용하고 정말 필요한 경우에 애너테이션을 직접 정의해서 사용하라. 마커 애너테이션 아무런 매개변수 없이 단순히 대상에 마킹하는 용도로 사용되는 애너테이션을 의미한다. /** * 테스트 메서드임을 선언하는 애너테이션 * 매개변수 없는 정적 메서드 전용 */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @.. Reading Record/이펙티브자바 2020. 6. 29. 이전 1 다음