在我的 Android 应用程序中,我有以下类:
public abstract class A implements IA {
private void findAnnotations() {
Field[] fields = getClass().getFields();
// Get all fields of the object annotated for serialization
if (fields != null && fields.length > 0) {
for (Field f : fields) {
Annotation[] a = f.getAnnotations();
if (annotation != null) {
// Do something
}
}
}
return serializationInfoList
.toArray(new SoapSerializationFieldInfo[serializationInfoList
.size()]);
}
}
和
public abstract class B extends A {
@MyAnnotation(Name="fieldDelaredInB")
public long fieldDelaredInB;
}
当我调用时B.findAnnotations()
,我可以看到getClass().getFields()
返回在 B - 中声明的字段fieldDelaredInB
,例如,但没有返回这些字段的注释 - 即,当我调用时,我得到 null f.getAnnotations()
,f.getDeclaredAnnotations()
或其他任何情况。
这是不熟悉派生类属性的超类的问题吗?考虑到派生类的字段在我getFields()
从超类调用时出现的事实,这似乎很奇怪。
关于我错过了什么的任何想法?
谢谢,哈雷尔