clazz.getAnnotation(annoClazz); clazz.isAnnotationPresent(annoClazz); 以上代码无法获取到注解,分析原因如下 注解上是否添加了Retention注解,并且value值为RetentionPolicy.RUNTIME Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略 RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略 RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用. 确保加载注解注释类与注解类的classloader一致,因为判断是否是一个类的标准中包含是否是同一classloader加载的