public static <A extends Annotation> A getAnnotation(final Class<?> clazz,
final Class<A> annotationClass)
{
return executeWithinCleanSynchronizedAnnotationManager(new RunnableWithResult<A>()
{
@SuppressWarnings("unchecked")
@Override
public A run()
{
return (A) AnnotationManager.getAnnotatedClass(clazz)
.getAnnotation(annotationClass);
}
});
}
上面的方法的返回值之前加上一个泛型的好处:可以把T当作一个变量来使用,如 if(T instanceof ...) ……
注意: 方法的返回值之前加上一个泛型,同时也是对T的一个声明。否则会报错