YJ의 새벽

JAVA (애너테이션) 본문

SelfStudy/JAVA

JAVA (애너테이션)

YJDawn 2023. 2. 6. 15:15

 

애너테이션

--주석처럼 프로그래밍 언어에 영향을 미치지 않으며 , 유용한 정보를 제공.

 

 

표준 애너테이션

--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
Comments