17장 어노테이션이라는 것도 알아야 한다
- @Override 어노테이션의 용도는 무엇인가요?
- 부모클래스의 메소드를 재정의
- @SupressWarning 어노테이션의 용도는 무엇인가요?
- 에러가 아님을 명시적으로 알려주는 용도
- @Decrecated 어노테이션의 용도는 무엇인가요?
- 더 이상 존재하지 않음 사용불가
- 어노테이션을 선언할 때 사용하는 어노테이션은 무엇인가요?
- 메타어노테이션
- 4번의 답에 있는 어노테이션들을 사용할 때 import 하는 패키지는 무엇인가요?
- java.lang.annotation
- @Target 어노테이션의 용도는 무엇인가요?
- 어노테이션을 어떤 것에 선언할 때 사용
- @Retention 어노테이션의 용도는 무엇인가요?
- 얼마나 오래 어노테이션 정보가 유지되는지
- @Inherited 어노테이션의 용도는 무엇인가요?
- 모든 자식 클래스에서 부모 클래스의 어노테이션을 사용가능함을 알려주는 용도
- 어노테이션을 선언할 때는 class 대신 어떤 예약어를 사용해야 하나요?
- @interface
어노테이션이란
- 어노테이션은 클래스나 메소드 등의 선언시에 @를 사용하는 것을 말한다.
- 메타 데이터 라고도 불림
- 컴파일러에게 정보를 알려주거나
- 컴파일 할 때와 설치 시의 작업을 지정하거나
- 실행할 때 별도의 처리가 필요할 때 사용
- 클래스, 메소드, 변수 등 모든 요소에 선언 가능
- @Override
- 해당 메소드가 부모 클래스에 있는 메소드를 Override 했음을 명시적으로 선언하며 부모 클래스에 있는 메소드의 이름과 매배 변수들을 동일하게 가져간다
- @Deprecated
- 클래스나 메소드가 더 이상 사용되지 않는 경우
- @SupressWarnings
- 컴파일러에게 경고할 필요가 없음을 알리는 경우
메타어노테이션
- 어노테이션을 선언하기 위해 존재하며 4가지가 있다
- @Target
- 해당 어노테이션 사용 대상을 지정 ex) @Target(ElementType.METHOD)
- @Retention
- 얼마나 오래 어노테이션 정보가 유지되는지를 선언 ex) @Retention(RetentionPolicy.RUNTIME)
- @Documented
- 해당 어노테이션에 대한 정보가 Javados(API) 문서에 포함된다는 것을 선언
- @Inherited
- 모든 자식 클래스에서 부모 클래스의 어노테이션을 사용 가능하다는 것을 선언
- @interface
- 어노테이션을 선언할 때 사용 ex) public @interface UserAnnotation{}
어노테이션 특징
- 상속 불가
- 제약사항 등을 선언하기 위해 : @Deprecated, @Override, @NotNull
- 용도를 나타내기 위해 @Entity, @TestCase, @WebService
- 행위를 나타내기 위해 : @Statefull, @Transaction
- 처리를 나타내기 위해 : @Column, @XmlElement
'JAVA > about java' 카테고리의 다른 글
[Thread safe] Thread safe / unsafe 기준과 코드 설계 방법 (0) | 2023.04.25 |
---|---|
[JVM] jvm / java.lang (1) | 2023.04.25 |
[ArrayList] ArrayList / Array vs ArrayList / 자바 버전 별 차이점 (0) | 2023.04.25 |
[String] String 클래스 (0) | 2023.04.23 |
[String] String 빈 값 및 Null 체크 (0) | 2023.04.19 |