Java 8方法getAnnotation

时间:2015-12-04 11:10:43

标签: java java-8

我发现Java 8与Method.getAnnotation(Class<T> annotationClass)上的Java 7不同,例如代码:

public class Java8Test extends A<String> {
    public static void main(String[] args) {
        Class<Java8Test> b = Java8Test.class;
        Method[] methods = b.getDeclaredMethods();
        for (Method method : methods) {
            Annotation annotation = method.getAnnotation(Resource.class);
            if (annotation != null) {
                System.out.println(method);
            }
        }
    }

    @Resource
    public void print(String s) {
        System.out.println(s);
    }
}
class A<T extends Object> {
    void print(T t) {
    }
}

使用Java 8打印:

public void com.test.java8.Java8Test.print(java.lang.Object)
public void com.test.java8.Java8Test.print(java.lang.String)

使用Java 6或Java 7打印:

public void com.test.java8.Java8Test.print(java.lang.String)

我是如何得到真正的方法的。

0 个答案:

没有答案