Java 1.5 이전에는 annotation이 존재하지 않았다. 그래서 이전에는 도구 or 프레임워크를 특별 취급하기 위해서 Java 1.5 이전에는 작명 패턴을 사용(ex. JUnit 테스트 이름을 test로 시작하는 것)했다. 그러나 이 방법을 사용하면 이름을 잘못 입력하면 문제가 발생하거나 무시해버리는 오류가 생기며, parameter을 전달할 방법이 없었음.
이를 해결하기 위해 Java 1.5에서는 annotation이 등장 했다.
JAVA API Annotation 자료형 보러가기(클릭)
- Annotation 종류
- @Override
- 해당 메소드가 부모 클래스에 있는 메소드를 오버라이드 했다는 것을 명시적으로 선언 - @Deprecated
- 더이상 사용되지 않은 클래스나 메소드 앞에 추가 - @SuppressWarnings
-컴파일러 warning을 제거하여 컴파일러에게 명시적으로 warning을 제거 - Meta Annotation
- @Target
- 어떤 것에 annotation을 적용할지 선언할 때 사용 - @Retention
- annotation 유지 시점을 선언 - @Documented
- 해당 annotation information이 JavaDocs(API) 문서에 포함된다는 것을 선언 - @Inherited
- 모든 자식 클래스가 부모 클래스의 anntation을 사용할 수 있다는 것을 선언 - @Interface
- annotation을 선언할 때 사용
- Annotation 특징
- enum 클래스가 상속을 지원하지 않듯이 Annotation도 상속이 되지 않음
반응형
'개발이야기 > Effective Java' 카테고리의 다른 글
[Effective Java]새 코드에는 무인자 제네릭 자료형을 사용하지 마라 (0) | 2017.04.15 |
---|---|
[Effective Java]자료형을 정의할 때 표식 인터페이스를 사용하라 (259) | 2017.03.10 |
[Effective Java]Override 어노테이션은 일관되게 사용하라 (250) | 2017.03.10 |
[Effective Java]int 상수 대신 enum을 사용하라 (1100) | 2017.03.10 |
[Effective Java]예외를 무시하지 마라 (954) | 2017.03.04 |
[Effective Java]실패 원자성 달성을 위해 노력하라 (1821) | 2017.03.04 |