반응형
Annotation
@
: 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보 제공.
이전에는 코드에 대한 설명을 따로 문서파일로 만들었었다. 코드를 변경할 때마다 문서는 수정하지 않으면서 내용의 불일치가 생겼다. 그래서 문서에 적던 내용을 코드에 적기 시작한 게 바로 어노테이션이다.
표준 어노테이션 | 설명 |
@Override | 컴파일러에게 오버라이딩하는 메서드라는 것을 알린다. |
@Deprecated | 앞으로 사용하지 않을 것을 권장하는 대상에 붙인다. |
@SuppressWarnings | 컴파일러의 특정 경고메시지가 나타나지 않게 해준다.(JDK1.7) |
@FunctionalInterface | 함수형 인터페이스라는 것을 알린다.(JDK1.8) |
@Native | native메서드에서 참조되는 상수 앞에 붙인다.(JDK1.8) |
표준 어노테이션
@Override
: 오버라이딩 표기.
@Deprecated
: 사용하지 않을 것을 권장.
- 새로운 버전에 업그레이드 된 메서드가 있으므로 사용하지 않을 것을 권장하고있다.
- 이전 버전을 사용하고 있는 코드를 위해 삭제하지 않았을 뿐.
@FunctionalInterface
: 함수형 인터페이스에 붙인다.
- 함수형 인터페이스는 하나의 추상메서드만 가져야 하는 제약이 있다.
- @FunctionalInterface는 이 제약을 지켰는 지 컴파일러가 체크하게 해준다.
@SuppressWarnings("경고")
: 컴파일러의 경고 메시지가 나타나지 않게 한다.
💡 여러 경고 한번에 안 뜨게 하기 ( { "경고1", "경고2" } )
메타 어노테이션
Meta Annotation
: 어노테이션을 만들기 위한 어노테이션.
메타 어노테이션 | 설명 |
@Target* | 어노테이션이 적용가능한 대상을 지정하는데 사용한다. |
@Documented * | 어노테이션 정보가 javadoc으로 작성된 문서에 포함되게 한다. |
@Inherited | 어노테이션이 자손 클래스에 상속되도록 한다. |
@Retention* | 어노테이션이 유지되는 범위를 지정하는데 사용한다. |
@Repeatable* | 어노테이션을 반복해서 적용할 수 있게 한다.(JDK1.8) |
@Target
: 어노테이션 적용대상을 지정한다.
@Retention
: 어노테이션 유지(retention)기간을 지정한다.
유지 정책 | 의미 |
SOURCE | 소스 파일에만 존재. 클래스파일에는 존재하지 않는다. |
CLASS | 클래스 파일에 존재 실행시에 사용불가. 기본값. |
RUNTIME | 클래스 파일에 존재 실행시에 사용가능. |
@Documented, @Inherited
: javadoc으로 작성한 문서에 포함시킬 때 사용한다.
- @Inherited는 자손까지 상속된다.
- 개발자들이 사용할 일은 별로 없다.
@Repeatable
반복해서 사용할 수 있는 어노테이션을 정의할 수 있게 해준다.
2024.11.29 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA]@Annotation 만들기
반응형
'☕ JAVA > ☕ 개념지식' 카테고리의 다른 글
[JAVA]SOLID란? 객체지향 설계원칙 (0) | 2025.01.12 |
---|---|
[JAVA][Thread]Multi Thread (0) | 2024.12.01 |
[JAVA]객체지향 4가지 원칙(특징) (0) | 2024.11.18 |
[JAVA]Object:모든 클래스의 조상 (0) | 2024.11.05 |
[JAVA]Error & Exception. 예외의 종류. (0) | 2024.11.03 |