通过反射获取属性以及属性的值

已经通过反射获取到 Class 对象了,接下来开始获取属性

属性的英文是 Field,所以获取属性的集合方法就是 getFields():

通过反射获取属性以及属性的值_第1张图片
这里有一个知识点:
getField 和 getDeclaredField 的区别:

getField 获取到的是公共字段,包括当前类创建的对象可以直接调用的属性(public)包括从 父类继承的

getDeclaredField 获取到的是声明字段:当前类原始声明的所有属性,包括私有的,但是不包括从父类继承的

举例:Student 类如图:
其中 sCard 和 sBirthday 不是 public 修饰的,所以第一行无法找到,但是找到了父类中 public 修饰的字段:
通过反射获取属性以及属性的值_第2张图片
在这里插入图片描述
获取到 属性以后,可以获取属性的值,此时用 Filed 对象的 getFiled 方法(没有 s)
get 获得字段,set 设置字段,需要注意的是,如果是 set 的话,需要先创建一个对象:
通过反射获取属性以及属性的值_第3张图片
至此,已经可以实现 get 和 set 方法了

你可能感兴趣的:(java,反射)