有关反射机制的全部内容,请观看本人的同专栏博文——《详解 反射机制》
接之前的同专题博文,本人来继续讲解
获取 成员变量 的方式:
1.获取 所有“外部可视”成员:
Field[] fieldSet = klass.getFields();
//klass是我们通过上面的提到的三种方式取得的
2.获取 所有成员:
Field[] fieldSet = klass.getDeclaredFields();
//klass是我们通过上面的提到的三种方式取得的
那么,我们还是像上面展示构造方法数组一样,展示这两个数组,那么,我们来看一下运行结果:
那么,本人现在来展示一下 获取 某一成员的操作:
1.获取 某一 “外部可视”的成员:
Field field = klass.getField("成员名称");
//klass是我们通过上面的提到的三种方式取得的
//“成员名称”必须是我们在调用的类中的成员的名称
2.获取 某一 “私有”的成员 :
Field field = klass.getDeclaredField("成员名称");
field.setAccessible(true); //这一步等价于是强行读取私有方法,这样的语句在在我们的代码中最好少出现
那么,本人同样地给出调用 我们 获取到的 成员变量 的方式:
调用获取到的 成员变量:
Object object = klass.getConstructor().newInstance();
//这一句相当于 调用了klass的无参构造
field.set(object, 参数);
//为名为object 的klass的对象的 field所调用的成员赋值
//constructor是我们通过上面的获取该方法的途径获得
//这里的“参数”,必须要符合我们获取该方法时所设定的 参数个数 及 参数类型
下面本人来演示下这个方式的操作过程以及结果:
可以看到,我们改变了该成员变量的值。
以上就是 对于 成员变量 的处理的全部知识点了。
若对这篇博文有任何疑问或者意见以及建议,请在下方评论区提出,本人将尽早予以讲解以及答复,喜欢的同学请留下你们的赞,谢谢!!!
有关反射机制的全部内容,请观看本人的同专栏博文——《详解 反射机制》