我问这个问题是因为我很好奇。我不想真正遍历一个类的派生类。我知道我在这里介绍的方法很草率,这只是一个测试。
所以假设我有一个类(抽象与否):
public class SomeClass {
// snip....
}
我可以轻松地编写一个方法来遍历类层次结构并找到一个Field
示例:
private Field extractField(Class<?> type, String fieldName) {
Field ret = null;
try {
ret = type.getDeclaredField(fieldName);
} catch (NoSuchFieldException e) {
Class<?> superclass = type.getSuperclass();
if (superclass == null) {
throw new IllegalArgumentException("Missing field detected.", e);
} else {
ret = extractField(superclass, fieldName);
}
}
return ret;
}
现在,如果我想Field
在 的派生类中搜索 a,我该怎么办type
?我在 java 反射包中没有发现任何有用的东西。