java 泛型思考

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的一个声明。否则会报错

posted on 2013-05-10 16:39  尖刀舞者  阅读(129)  评论(0编辑  收藏  举报