[자바 8]자바 8 의 중복 설명

2426 단어 annotationJava 8
어떤 경우 에는 같은 요소 에 같은 Annotation 주석 을 여러 번 사용 하고 싶 을 수도 있 습 니 다.이것 은 자바 8 버 전 전에는 할 수 없 었 다.자바 8 부터 반복 가능 한 주석(repeating annotations)을 제공 하여 이 목적 을 달성 할 수 있 습 니 다.
반복 가능 한 주석 은 언제 필요 합 니까?매달 마지막 날 과 매주 5 시 23 분 에 한 번 씩 실행 하 는 방법 이 필요 하 다 고 가정 하면 아래 와 같이 설명 을 추가 할 수 있 습 니 다.
@Schedule(dayOfMonth="last")
@Schedule(dayOfWeek="Fri", hour="23")
public void doPeriodicCleanup() { ... }

위의 예 는 방법 에 중복 주석 을 추가 하 였 습 니 다.물론 다른 Annotation 처럼 중복 주석 을 추가 하고 싶 은 곳 에 추가 할 수도 있 습 니 다.예 를 들 어 권한 이 부여 되 지 않 은 접근 이상 을 클래스 로 처리 하려 면 아래 와 같이 설명 을 추가 할 수 있 습 니 다.
@Alert(role="Manager")
@Alert(role="Administrator")
public class UnauthorizedAccessException extends SecurityException { ... }
호환성 을 고려 해 중복 주석 은 용기 Annotation(container annotation)에 저장 되 며,컴 파일 할 때 자바 컴 파 일 러 가 용기 Annotation 을 자동 으로 생 성하 고 중복 주석 을 용기 Annotation 에 저장 합 니 다.따라서 컴 파일 러 가 이 점 을 할 수 있 도록 코드 에 두 개의 Annotation 성명 을 포함해 야 합 니 다.다음은 절 차 를 살 펴 보 자.
첫 번 째,성명 은 주석 형식 을 반복 할 수 있 습 니 다.
Annotation 형식 은@Repeatable 메타 주석 을 추가 해 야 합 니 다.예 를 들 어:
@Repeatable(Schedules.class)
public @interface Schedule { ... }

@Repeatable 뒤에 있 는 작은 괄호 는 중복 설명 이 가능 한 용기 Annotation 이름 을 저장 하 는 데 사 용 됩 니 다.용기 Annotation 은 자바 컴 파일 러 에서 생 성 되 고 중복 설명 이 가능 한 저장 에 사 용 됩 니 다.이 예 에서 용기 Annotation 이름 은 Schedules 이기 때문에@Schedules 는@Schedules 에 저 장 됩 니 다.
자바 의 같은 요소 에 주석 을 반복 적 으로 사용 하려 면 설명 을 설명 할 때@Repeatable 원 주석 이 없어 서 는 안 되 거나 없어 서 는 안 된다 는 것 을 기억 하 십시오.그렇지 않 으 면 컴 파일 오류 가 발생 할 수 있 습 니 다.
두 번 째 단계,성명 용기 주석 형식
용기 Annotation 에는 배열 형식의 value 요소 가 있어 야 합 니 다.또한 배열 의 각 요소 의 유형 은 반복 적 으로 설명 할 수 있 는 유형 이 어야 합 니 다.예 를 들 면:
public @interface Schedules {
    Schedule[] value;
}

주석 가 져 오기
자바 API 에서 반사 API 를 제공 하여 Annotation 을 가 져 옵 니 다.예 를 들 어 AnnotatedElement.getAnnotationByType(Class)은 이 방법 으로 Annotatoin 을 되 돌려 줍 니 다.하지만 하나의 요소 에 여러 개의 반복 Annotation 이 있다 면 이 방법 으로 용기 Annotation 의 첫 번 째 Annotation 만 되 돌려 줍 니 다.자바 8 에 서 는 용기 Annotation 의 모든 중복 설명 을 가 져 올 수 있 는 더 많은 API 를 제공 합 니 다.예 를 들 어 Annotated Element.getAnnotations(Class)등 은 자바 API 를 참조 하여 더 많은 정 보 를 얻 을 수 있 습 니 다.
글 의 출처:
http://www.aptusource.org/2014/03/java-8-repeat-annotations/

좋은 웹페이지 즐겨찾기