我有A1班。 A1类延伸A2,A2延伸A3。我有2个注释@ t1,@ t2,它在所有3个类中声明。如果我使用这样的方法来访问注释:
public void checkAnnotation(Object s1, Object d1) {
Field[] field1= source.getClass().getDeclaredFields();
for (Field field : field1) {
if ((!Modifier.isStatic(field.getModifiers()) && field.isAnnotationPresent(t1.class))
|| (!Modifier.isStatic(field.getModifiers()) && field.isAnnotationPresent(t2.class))) {
t1 tx= field.getAnnotation(t1.class);
t2 tc = field.getAnnotation(t2.class);
if (((tx!= null) && (tx.isread())) || (tc!= null)) {
try {
field.setAccessible(true);
Object attributeValue1 = field.get(s1);
field.set(d1, attributeValue1);
} catch (Exception e) {
e.printstackTrace();
}
}
}
}
如何获取超类声明的字段。在这个例子中,我只能为s1类获取它。不是超级s1。请提供解决方案。
答案 0 :(得分:0)
您可以调用getSuperClass()
来获取Class
对象的超类。