당신은 사용할 수 있습니다
이 클래스 객체가 나타내는 클래스의 멤버로서 선언 된 모든 클래스 및 인터페이스를 반영하는 Class 오브젝트의 배열을 돌려줍니다 Class#getDeclaredClasses()
.
그런 다음 배열을 반복하여 해당 클래스가 Class#isAnnotation()
인 주석인지 확인할 수 있습니다.
예
public class Driver {
public static void main(String[] args) throws Exception {
Class<?>[] classes = Driver.class.getDeclaredClasses();
System.out.println(Arrays.toString(classes));
for (Class<?> clazz : classes) {
if (clazz.isAnnotation()) {
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method);
}
}
}
}
@Retention(value=RetentionPolicy.RUNTIME)
@Target(value=ElementType.FIELD)
protected @interface Addition
{
String location();
}
}
인쇄
[interface com.spring.Driver$Addition]
public abstract java.lang.String com.spring.Driver$Addition.location()