已经通过反射获取到 Class 对象了,接下来开始获取属性
属性的英文是 Field,所以获取属性的集合方法就是 getFields():
这里有一个知识点:
getField 和 getDeclaredField 的区别:
getField 获取到的是公共字段,包括当前类创建的对象可以直接调用的属性(public)包括从 父类继承的
getDeclaredField 获取到的是声明字段:当前类原始声明的所有属性,包括私有的,但是不包括从父类继承的
举例:Student 类如图:
其中 sCard 和 sBirthday 不是 public 修饰的,所以第一行无法找到,但是找到了父类中 public 修饰的字段:
获取到 属性以后,可以获取属性的值,此时用 Filed 对象的 getFiled 方法(没有 s)
get 获得字段,set 设置字段,需要注意的是,如果是 set 的话,需要先创建一个对象:
至此,已经可以实现 get 和 set 方法了