我有一系列不相关的类(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/