Java是否自动缓存注释和类元数据?

时间:2017-03-01 21:32:41

标签: java reflection annotations java-annotations

Java对注释有本机支持。

我想知道当我调用obj.getAnnotation(Test.class)时,java会将类元数据存储在任何类型的缓存中。

我有同样的问题,如:

for (Method method : obj.getDeclaredMethods()) {

        if (method.isAnnotationPresent(Test.class)) {

            Annotation annotation = method.getAnnotation(Test.class);
            Test test = (Test) annotation;

        }
}

2 个答案:

答案 0 :(得分:2)

缓存行为不是"合同的一部分" getAnnotation方法,但(至少在openjdk中),it does happen

答案 1 :(得分:0)

不确定缓存是什么意思,但JVM以特殊结构存储在运行时可见的所有类,字段和方法注释,这些注释使它们可以通过反射API调用获得。您可以找到有关此here的更多信息。

希望这就是你要找的东西。