Java有四种访问权限(public > protected > default(包访问权限) > private )。
Class.getFieldn能获取该类public字段
通过Class.getDeclaredField能获取该类所有字段,但是无法获取父类Field,
写个方法记录一下,方便后续使用备忘。
递归获取当前类获取不到就找父类获取,没有就返回null。
java实现:
public static Field getField(Class<?> clazz, String filedName) {
try {
if(clazz != null) {
Field declaredField = clazz.getDeclaredField(filedName);
return declaredField;
}
} catch (NoSuchFieldException e) {
return getField(clazz.getSuperclass(), filedName);
}
return null;
}