1 minute read

12.3

3. 어노테이션

  • 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것
  • 표준 어노테이션
    • 자바에서 기본적으로 제공하는 어노테이션들
    • Override: 컴파일러에게 오버라이딩하는 메서드임을 알림
    • Deprecated: 앞으로 사용하지 않을것을 권장
    • @SuppressWarnings 컴파일러의 특정 경고 메세지를 차단
    • @SafeVarags: 제네릭스 타입의 가변인자에 사용
    • @Functionallnterface: 함수형 인터페이스임을 알림
    • @Native: native메서드에서 참도되는 상수 앞에 붙임
  • 메타 어노테이션
    • 어노테이션에 붙히는 어노테이션
    • 어노테이션을 정의할 떄 어노테이션의 적용대상이나 유지기간을 지정하는데 사용
    • @Target: 어노테이션이 적용가능한 대상을 지정하는데 사용
    • @Documented: 어노테이션 정보를 javadoc으로 작성된 문서에 포함시킴
    • @Inherited: 어노테이션이 자손 클래스에 상속되도록 함
    • @Retention: 어노테이션이 유지되는 범위를 지정하는데 사용함
    • @Repeatable: 어노테이션을 반복해서 적용할 수 있게 함
  • 어노테이션 정의

      @interface 어노테이션이름 {
      	타입 요소이름(); //어노테이션의 요소 선언
      }
    
  • 어노테이션의 요소
    • 어노테이션 내 선언된 메서드
    • 요소는 반환값이 있고 매개변수는 없는 추상 메서드의 형태를 가짐
    • 상속을 통해 구현될 필요 없음
    • 어노테이션을 적용할 때 요소들의 값을 모두 할당해야됨
    • 기본값을 지정할 수 있으며 어노테이션이 적용될 때 할당되지않으면 기본값 적용
    • 요소의 규칙
      • 요소의 타입은 기본형, String, enum, 어노테이션, Class만 허용
      • 매개변수 선언 불가
      • 요소를 타입 매개변수로 정의 할 수 없음
      • 예외를 선언할 수 없음
  • 마커 어노테이션
    • 요소가 하나도 없는 어노테이션

Leave a comment