如何使用java中的ELEMENT.TYPE字段访问超类中存在的注释

时间:2013-04-26 13:38:53

标签: java

我有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。请提供解决方案。

1 个答案:

答案 0 :(得分:0)

您可以调用getSuperClass()来获取Class对象的超类。