2012-03-12 4 views
0

특정 예제를 사용하여보다 쉽게 ​​이해할 수 있도록하겠습니다.시스템 클래스에 사용자 지정 메서드 추가

보다는 사용 :

Annotation[] annotations = method.getAnnotations(); 

나는 각 주석과 관련된 클래스 형식의 배열 얻을 수 있도록하고 싶습니다 :

Class<?>[] annotationClasses = method.getAnnotationTypes(); 

이 메소드를 오버라이드 (override) 할 수있는 방법이 있나요 getAnnotations를 사용하여 주석을 수집하지만 Annotation 유형 대신 클래스 유형을 리턴하는 내 사용자 정의 메소드를 추가하십시오.

답변

1

요청하는 것을 정확하게 수행 할 방법이 없습니다. Method은 최종이며 연장 할 수 없습니다.

그러나, 당신은 할 수

Class <?> [ ] getDeclaredAnnotations (Method method) 
{ 
     Annotation [ ] as = method . getDeclaredAnnotations () ; 
     Class <?> [ ] bs = new Class <?> [ as . length ] ; 
     for (int i = 0 ; i < as . length ; i ++) 
     { 
       Annotation a = as [ i ] ; 
       b [ i ] = a ; 
     } 
     return bs ; 
} 
관련 문제