如果给定类型具有带有给定注释的方法,则返回true
/** 来 自 时 代 J a v a - nowjava.com**/ //package com.nowjava; import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; public class Main { /** * Returns true if the given type has a method with the given annotation */ public static boolean hasMethodWithAnnotation(Class<?> type, Class<? extends Annotation> annotationType, boolean checkMetaAnnotations) { try { do { Method[] methods = type.getDeclaredMethods(); /** from 时 代 J a v a 公 众 号**/ for (Method method : methods) { if (hasAnnotation(method, annotationType, checkMetaAnnotations)) { return true; } } type = type.getSuperclass(); } while (type != null); } catch (Throwable e) { // ignore a class loading issue } return false; } /** * Checks if a Class or Method are annotated with the given annotation * * @param elem the Class or Method to reflect on * @param annotationType the annotation type * @param checkMetaAnnotations check for meta annotations * @return true if annotations is present */ public static boolean hasAnnotation(AnnotatedElement elem, Class<? extends Annotation> annotationType, boolean checkMetaAnnotations) { if (elem.isAnnotationPresent(annotationType)) { return true; } if (checkMetaAnnotations) { for (Annotation a :