ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바] 애너테이션
    자바 2022. 7. 23. 00:47
    728x90

    1. 표준 애너테이션

    @Override

    조상의 메서드를 오버라이딩 하는 것이라는 걸 컴파일러에게 알려줌 ( 오버라이딩시 꼭 쓰기 )

    @Deprecated

    더 이상 사용되지 않는 필드나 메서드 ( 더 이상 사용하지 않을 것을 권유, 강제성은 없다 )

    -Xlint 를 사용해서 에러에 대한 내용을 알 수 있다

    @FunctionalInterface

    함수형 인터페이스를 올바르게 선언했는지 체크해준다

    @SuppressWarnings

    컴파일러가 보여주는 경고메세지가 나타나지 않게 해준다 ( 특정 메소드에서 나타나는 경고를 억제 시켜준다 )
    @SuppressWarnings({"deprecation", "unchecked"}) // 2개도 가능

    @SafeVarargs

    오버라이딩될 수 있는 메서드에는 사용할 수 없다

     

    2. 메타 애너테이션

    애너테이션을 위한 애너테이션으로, 애너테이션으로 애너테이션을 정의할 때 애너테이션의 적용대상이나 유지기간을 지정하는데 사용됨

     

    @Target

    애너테이션이 적용가능한 대상을 지정하는것  ( 여러개 지정시 { } 사용 하기 )

    @Retention

    애너테이션 유지기간을 지정하는데 사용

    @Documented

    애너테이션에 대한 정보가 javadoc으로 작성한 문서에 포함되도록 한다

    @Inherited

    애너테이션이 자손 클래스에 상속되도록 한다.

    @Repeatable

    보통은 하나의 대상에 한 종류의 애너테이션을 붙이는 데 '@Repeatable' 이 붙은 애너테이션은 여러 번 붙일 수 있다.

    @native

    네이티브 메서드에 의해 참조되는 '상수 필드'에 붙이는 애너테이션이다
    네이티브 메서드 - JVM에 설치된 OS의 메서드를 의미한다

     

    3. 애너테이션 타입 정의하기

    '@' 기호를 제외하면 인터페이스 정의와 같다

    @interface 애너테이션 이름 {
        타입 요소이름();
    }

     

    애너테이션 요소

    애너테이션 요소 - 애너테이션 내에 선언된 메서드

     

    - 반환값이 있다

    - 매개변수는 없는 추상 메서드 형태를 가진다.

    - 상속을 통해 구현할 필요가 없다.

    - 요소들의 값을 다 지정해줘야 한다

    - 이름이 있으므로 순서는 중요치 않다

    - 각 요소는 기본값을 가질 수 있으며, 기본값이 있는 요소는 애너테이션을 적용할 때 값을 지정하지 않으면 기본값이 사용된다

    - 요소가 오직 하나뿐이고 이름이 value인 경우, 애너테이션을 적용할 때 요소의 이름을 생략하고 값만 적어도 된다.

    - 요소 타입이 배열인 경우 { }를 사용해 여러 개의 값 지정이 가능하다 ( 기본값도 { } 사용 가능하다. )

    - 요소 타입이 배열일 때도 요소의 이름이 value이면 요소의 이름을 생략할 수 있다.

     

    요소의 규칙

    - 요소의 타입은 기본형, String, enum, 애너테이션, Class만 허용된다
    - ()안에 매개변수를 선언할 수 없다
    - 예외를 선언할 수 없다
    - 요소를 타입 매개변수로 정의할 수 없다.

    '자바' 카테고리의 다른 글

    [자바] 람다  (0) 2022.07.25
    [자바] 쓰레드  (0) 2022.07.23
    [자바] 열거형 ( enum )  (0) 2022.07.23
    [자바] 제네릭스  (0) 2022.07.22
    [자바] 컬렉션 프레임웍  (0) 2022.07.21
Designed by Tistory.