public static boolean isAnnotationInherited(Class<? extends Annotation> annotationType, Class<?> clazz) {
		Assert.notNull(annotationType, "Annotation type must not be null");
		Assert.notNull(clazz, "Class must not be null");
		return (clazz.isAnnotationPresent(annotationType) && !isAnnotationDeclaredLocally(annotationType, clazz));
	}
public static boolean isAnnotationInherited ( Class < ? extends Annotation > annotationType , Class < ? > clazz ) { Assert . notNull ( annotationType , "Annotation type must not be null" ) ; Assert . notNull ( clazz , "Class must not be null" ) ; return ( clazz . isAnnotationPresent ( annotationType ) && ! isAnnotationDeclaredLocally ( annotationType , clazz ) ) ; }
Determine whether an annotation for the specified {@code annotationType} is present
on the supplied {@code clazz} and is {@linkplain java.lang.annotation.Inherited inherited}
(i.e., not declared locally for the class).
<p>If the supplied {@code clazz} is an interface, only the interface itself will be checked.
In accordance with standard meta-annotation semantics, the inheritance hierarchy for interfaces
will not be traversed. See the {@linkplain java.lang.annotation.Inherited Javadoc} for the
{@code @Inherited} meta-annotation for further details regarding annotation inheritance.
@param annotationType the Class object corresponding to the annotation type
@param clazz the Class object corresponding to the class on which to check for the annotation
@return {@code true} if an annotation for the specified {@code annotationType} is present
on the supplied {@code clazz} and is <em>inherited</em>
@see Class#isAnnotationPresent(Class)
@see #isAnnotationDeclaredLocally(Class, Class)