Class 类中的 getDeclaredField() 方法和 getField() 方法用于获取类中的字段(成员变量)对象,但它们有以下区别:
可访问性: getDeclaredField() 方法可以获取包括私有字段在内的所有字段对象,而 getField() 方法只能获取公共字段(public 访问修饰符)的字段对象。如果要获取非公共字段,需要使用 getDeclaredField() 方法,并在需要时设置字段的可访问性。
继承关系: getDeclaredField() 方法将返回在当前类中声明的字段对象,无论该字段是否继承自父类。而 getField() 方法将返回当前类和其父类中声明的公共字段对象。如果要获取包括父类中的字段,可以使用 getDeclaredField() 方法结合遍历父类的方式。