YJ의 새벽
JAVA (애너테이션) 본문
애너테이션
--주석처럼 프로그래밍 언어에 영향을 미치지 않으며 , 유용한 정보를 제공.
표준 애너테이션
--JAVA에서 제공하는 애너테이션
--@Override : 오버라이딩을 올바르게 했는지 컴파일러가 체크하게한다.
--메소드 선언부 앞에 @Override 를 붙인다.
--@Deprecated : 앞으로 사용하지않을것을 권장하는 필드나 메소드에 붙인다.
--@FunctionalInterface : 함수형 인터페이스에 붙이면 , 컴파일러가 올바르게 작성했는지 체크.
--함수형 인터페이스에는 하나의 추상메서드만 가져야한다는 제약이 있음.
--@SuppressWarning() : 컴파일러의 경고메시지가 나타나지 않게 억제한다.
-- () 안에 억제하고자 하는 경고의 종류를 문자열로 지정.
-- ex ) 경고를 확인 했을때 . 확인했다는 표시.
메타 애너테이션
-- 애너테이션을 위한 애너테이션
--@Target : 애너테이션을 정의할 때, 적용대상 지정에 사용.
--@Retention : 애너테이션이 유지되는 기간을 지정하는데 사용.
-SOURCE : 소스파일에만 존재. 클래스파일에는 존재하지않음. (컴파일러에 의해 사용됨)
-RUNTIME : 클래스 파일에 존재. 실행시 사용가능.
--@Documented : javadoc로 작성한문서에 포함시키려면 @Documented를 붙임
--@Inherited : 애너테이션을 자손클래스에 상속하고자할때.
--@Repeatable : 반복해서 붙일수있는 애너테이션을 정의할 때 사용.
- @ToDo(ToDos) 를 하나로 묶을 컨테이너 애너테이션도 정의해야함.
마커 애너테이션
--요소가 하나도 정의되지 않은 애너테이션.
ex ) @Test (테스트임을 알림) @Deprecated (사용하지않을것을 권장)
애너테이션 타입 정의하기.
@interface 애너테이션이름 {
타입 요소이름 ( ) ;
....
}
--애너테이션을 직접 만들어 쓸수 있다.
--애너테이션의 메서드는 추상메서드 이며, 애너테이션을 적용할때 지정(순서x)
--적용시 값을 지정하지않으면, 사용될수있는 기본값 (default) 지정가능
--요소가 하나이고 이름이 value 일때 요소이름 생략가능.
--요소 타입이 배열인경우 , { } 사용.
애너테이션 요소의 규칙
--요소의 타입은 기본형, String, enum , 애너테이션, class만 허용.
--( ) 안에 매개변수 선언할 수 없다.
--예외를 선언할 수 없다.
--타입 매개변수 < T > 정의할 수 없다.
'SelfStudy > JAVA' 카테고리의 다른 글
JAVA ( 데몬 쓰레드 ) (0) | 2023.02.07 |
---|---|
JAVA (쓰레드 thread) (0) | 2023.02.07 |
JAVA (열거형) (0) | 2023.02.06 |
JAVA (제네릭 <?>, 형변환) (0) | 2023.02.05 |
JAVA (제네릭) (0) | 2023.02.04 |