8. 애너테이션(Annotation)
1) 특징
- Class 객체를 통해서 활용
- Annotation은 모든 애너테이션의 조상(상속 불가)
- Annotation은 인터페이스로 정의되어 있음
- 초기화 없이 사용할 시 기본값 지정 가능(null 제외)
- 요소(애너테이션 내 선언된 메소드)가 value일 경우 이름 생략 가능
- 요소 타입이 배열일 경우 {} "" 사용
2) 양식
- 생성: @interface 애너테이션명 {반환타입 요소명() default 초기값;}
- 사용: @애너테이션명(요소명=요소값) // 초기값 없을때만 지정, value-> 요소명 생략 가능
- 애너테이션 메소드는 추상메소드, 적용시 전부 지정해야 함
3) 표준(자바 제공) 애너테이션
- @Overide: 오버라이딩 메소드
- @Deprecated: 해당 필드 혹은 메소드 미사용 권장(사용시 삭선표시)
- @SuppressWarnings("경고의 종류"): 컴파일러의 경고 메시지 무시
- @SafeVarargs: 지네릭스 타입 가변인자에 사용(JDK1.7)
- @FunctionalInterface: 함수형 인터페이스 작성 체크(JDK1.8)
4) 메타 애너테이션(애너테이션을 위한 애너테이션)
- @Target({대상타입}): 애너테이션 적용가능 대상 지정
- @Retention(대상.범위): 애너테이션 유지 범위 지정(SOURCE, CLASS, RUNTIME)
- @Documented: 애너테이션 정보를 javadoc 문서에 포함시킴
- @Inherited: 애너테이션을 자손클래스에 상속
- @Repeatable*: 애너테이션 반복 적용 가능(JDK1.8)
- @Native: native 메소드에 의해 참조되는 상수에 사용(JDK1.8)
'프로그래밍 > Java' 카테고리의 다른 글
[Java 요약 정리] 10. 람다식(Lambda Expression) (0) | 2018.12.27 |
---|---|
[Java 요약 정리] 9. 쓰레드(Thread) (0) | 2018.12.27 |
[Java 요약 정리] 7. 열거형(Enums) (0) | 2018.12.26 |
[Java 요약 정리] 6. 지네릭스(Generics) (0) | 2018.12.26 |
[Java 요약 정리] 5. 컬렉션 프레임워크(Collections Framework) (0) | 2018.12.26 |