java - 如何查找哪个 java bean 属性具有已知注释

标签 java reflection annotations

我有一系列不相关的类(class)。每个类都有一个带有 @PrimaryKey(带有 getter 和 setter)的属性,该属性可以是任何类型。如何使用反射来查找任何类的实例的哪个属性具有 @PrimaryKey 注释 - 这样我就可以获取其字符串值。

代码不知道它传递的是哪种类型的类 - 它只是“Object”类型

最佳答案

你可以这样做:

for (Field field : YourClass.class.getDeclaredFields()) {
    try {
        Annotation annotation = field.getAnnotation(PrimaryKey.class);
        // what you want to do with the field
    } catch (NoSuchFieldException e) {
        // ...
    }
}

如果您正在使用类的实例,那么您可以执行以下操作来获取其 class 对象:

Class<?> clazz = instance.getClass();

所以第一行变成这样:

instance.getClass().getDeclaredFields()

如果遇到麻烦可以随时查看官方documentation 。我相信这是相当不错的。

关于java - 如何查找哪个 java bean 属性具有已知注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972571/

相关文章:

Spring:组件中的 Autowiring 服务为空

java - 创建不带 Main() 方法的 Jars

java - 冒泡排序存储在 JSONArray 中的 Java 字符串

java - 如何模拟局部最终变量

c# - 断言子类调用的特定构造函数

hibernate - 在 Spring 3 中使用 Hibernate

java - 注解类型可以定义静态方法吗?

java - 导出签名的apk后出现登录失败错误

java - 一组三个字段的哈希码

Java 反射属性字符串名称 -> 类数据类型