Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 문자집합
- 패키지
- 디코딩
- 자바의 특징
- final
- annotation
- final 클래스
- 클래스
- import
- 기본 생성자
- 유니코드
- Arrow function
- 즉시 실행 함수
- 생성자
- 화살표 함수
- 익명함수
- Super
- node
- package
- 자바
- router
- 라우터
- 객체지향 #객체지향 특징
- 메소드 재정의
- Override
- 어노테이션
- final 메소드
- 노드
- 인코딩
- Anonymous Functions
Archives
- Today
- Total
개인 공부 블로그
어노테이션 (Annotation) 본문
어노테이션은 메타데이터(metadata)라고 볼 수 있다.
애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보.
용도
- 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 (대표적인 예 : @Override)
- 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공
- 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공
어노테이션 타입 정의와 적용
public @interface AnnotationName {
타입 elementName() [default 값];
}
- @interface를 사용하여 어노테이션을 정의한다.
- 어노테이션은 엘리먼트(element)를 멤버로 가질 수 있다.
각 엘리먼트는 타입, 이름으로 구성되며 디폴트 값을 가질 수 있다.
엘리먼트의 이름 뒤에는 ()를 붙여야 한다.
public @interface AnnotationName{
String elementName1();
int elementName2() default 5;
}
이렇게 정의한 어노테이션을 코드에서 적용할 때는 다음과 같이 사용한다.
@AnnotationName(elementName1="값", elementName2=3);
또는
@AnnotationName(elementName1="값");
어노테이션은 기본 엘리먼트인 value를 가질 수 있다.
public @interface AnnotationName{
String value(); // 기본 엘리먼트 선언
int elementName() default 5;
}
Value 엘리먼트를 가진 어노테이션을 코드에서 적용할 때는 다음과 같이 값만 기술할 수 있다.
이 값은 기본 엘리먼트인 value 값으로 자동 설정된다.
@AnnotationName("값")
@AnnotationName(value="값", elementName=3); // value 엘리먼트와 다른 엘리먼트를 동시에 준 경우
'JAVA' 카테고리의 다른 글
메소드 재정의 (0) | 2023.09.21 |
---|---|
상속 (0) | 2023.09.21 |
패키지 (0) | 2023.09.18 |
final 필드와 상수 (1) | 2023.09.18 |
정적 멤버와 static (0) | 2023.09.18 |