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;
}
}
答案 0 :(得分:2)
缓存行为不是"合同的一部分" getAnnotation
方法,但(至少在openjdk中),it does happen。
答案 1 :(得分:0)
不确定缓存是什么意思,但JVM以特殊结构存储在运行时可见的所有类,字段和方法注释,这些注释使它们可以通过反射API调用获得。您可以找到有关此here的更多信息。
希望这就是你要找的东西。