Java笔记——利用反射机制获取成员变量及成员方法
来源:互联网 发布:网络教育到毕业多少钱 编辑:程序博客网 时间:2024/05/16 17:58
package tmp;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class Test {public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, NoSuchMethodException, InvocationTargetException{Student x=new Student();Class<?> xC=x.getClass();System.out.println("x类的名字:"+xC.getName()+"; 路径:"+xC.getPackage()+"; 父类:"+xC.getSuperclass());Field id=xC.getDeclaredField("id");id.setAccessible(true);id.setInt(x, 100);System.out.println("利用反射机制,改变私有域成员变量值,赋id值为:"+x.get_id());Method set_id=xC.getDeclaredMethod("set_id",int.class);set_id.invoke(x, 10);System.out.println("利用反射机制,获取成员方法,赋id的值为:"+x.get_id());}}class Student extends Student0{private int id;public Student(){}public int get_id(){return id;}public void set_id(int id){this.id=id;}public void set_id(float id){this.id=(int)id;}}class Student0{private int id;public Student0(){}public int get_id(){return id;}public void set_id(float id){this.id=(int)id;}}
程序运行结果:
x类的名字:tmp.Student; 路径:package tmp; 父类:class tmp.Student0
利用反射机制,改变私有域成员变量值,赋id值为:100
利用反射机制,获取成员方法,赋id的值为:10
知识点:
1、如何改变类中私有域变量值:
Class<?> xC=x.getClass();Field id=xC.getDeclaredField("id");id.setAccessible(true);id.setInt(x, 100);
2、如何利用java反射机制调研类的方法:
<pre name="code" class="java">Class<?> xC=x.getClass();
<pre name="code" class="java">Method set_id=xC.getDeclaredMethod("set_id",int.class);set_id.invoke(x, 10);
0 0
- Java笔记——利用反射机制获取成员变量及成员方法
- Java利用反射机制遍历成员变量
- 通过Java反射机制获取对象、方法和成员变量
- 通过反射获取构造方法,成员变量及成员方法
- Java利用反射操作成员变量,方法
- Java学习提要——"反射"获取方法信息(成员函数、成员变量 、构造函数)
- java反射2-获取构造方法、成员变量、成员方法
- java开发之成员变量及成员方法的反射
- Java反射获取成员变量
- 反射机制:类中方法及成员变量赋值
- java反射机制初步认识<一>获取成员变量
- 【慕课网笔记】Java 反射机制 4 获取成员变量构造函数信息
- java反射机制获取成员变量调用和调用实例方法的实现
- java 使用反射机制来获取私有方法和成员变量
- java反射之获取方法,成员变量,构造方法
- 【转载】JAVA利用反射机制访问private成员和方法
- Java反射获取成员方法
- java反射学习笔记(3)---使用Class来获取方法、成员变量、构造函数信息
- 字符编码笔记:ASCII,Unicode和UTF-8
- 你应该学习哪门编程语言
- oj字符串的复制
- 应用Yii1.1和PHP5进行敏捷Web开发
- linux 删除指定文件夹指定大小指定类型的文件
- Java笔记——利用反射机制获取成员变量及成员方法
- hibernate运行机制
- IOS多线程读写Sqlite问题解决
- 【Python】python学习之路(针对没有任何编程经验者或懂一点shell者)
- ZStack-CC2530-2.5.1a主要代码分析总结——明白ZStack-OSAL的原理和思想
- HPUOJ1291 小朋友排队 【逆序数+树状数组】
- 4.1.3 GPIO应用开发方法
- 应用于负载均衡的一致性哈希及java实现
- 查询BLOB字段的长度