- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个类文件test.class
。在该文件中有注释作为 @Id
和 @Entity
。但是当我使用方法 field.isAnnotationPresent(Id.class)
检查注释时,它返回 false
。我正在获取字段变量中的所有字段。
任何人都可以告诉我我做错了什么。
更新:我使用下面的代码来获取类
File file=new File("D:/test/");
URL url=file.toURL();
URL[] urls=new URL[]{url};
ClassLoader loader=new URLClassLoader(urls);
Class cls=loader.loadClass("com.net.test.Test");
最佳答案
您是否使用保留政策对注释进行了注释?如果未设置保留策略,则默认保留策略行为是注释由编译器读取并保留在生成的 .class 文件中,但在运行时不可访问。如果您在运行时需要注释,则需要使用以下注释注释您的注释:
@Retention(RetentionPolicy.RUNTIME)
关于java - 为什么 isAnnotationPresent(Id.class) 不适用于类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9835973/
我正在搜索类列表以检查类是否具有注释。这是代码: if (clazz.getAnnotations().length > 0){
事实证明,如果您使用可重复的注释,调用 method.isAnnotationPresent() 将无法正常工作。 最佳答案 奇怪的是,如果您只使用一个注释,它可以工作,但如果您使用多个注释,它就不起
我想知道此操作在以下运行时的开销有多大: JVM8 达尔维克 艺术 有关给定类 (target=TYPE) 的注释的信息在编译时可用,所以我猜它可以以某种方式缓存。但另一方面,我听说 Dalvik 在
我有一个类文件test.class。在该文件中有注释作为 @Id 和 @Entity。但是当我使用方法 field.isAnnotationPresent(Id.class) 检查注释时,它返回 fa
我正在尝试为我的 OpenGL 游戏引擎实现基于注释的事件系统。我在我想要这样调用的方法上应用 @EventListener 注解: @EventListener(type = Type.COLLIS
本文整理了Java中org.hibernate.annotations.common.reflection.XPackage.isAnnotationPresent()方法的一些代码示例,展示了XPa
本文整理了Java中org.hibernate.annotations.common.reflection.XMethod.isAnnotationPresent()方法的一些代码示例,展示了XMet
我正在尝试使用反射从父类(super class)型引用变量中获取注释详细信息,以使该方法接受所有子类型。但是 isAnnotationPresent() 返回 false。与其他注解相关的方法相同。
我今天刚刚发现这一点,因为我的一个单元测试由于从 Java 7 升级到 Java 8 而失败。单元测试调用一个方法,该方法试图在一个方法上找到一个注释,该方法在子类上注释但带有不同的返回类型。 在 J
我今天刚刚发现这一点,因为我的一个单元测试由于从 Java 7 升级到 Java 8 而失败。单元测试调用一个方法,该方法试图在一个方法上找到一个注释,该方法在子类上注释但带有不同的返回类型。 在 J
我是一名优秀的程序员,十分优秀!