Java 反射机制的使用

反射机制
反射机制是在程序运行状态中,对于任意一个类,都能够获取这个类的所有属性和方法;
也可以利用反射机制生成一个类的对象;
对于任意一个对象,都能够调用它的任意一个方法和属性及为属性赋值;
可以实现简单的反编译,获取类中的属性和方法等基本信息,.class—>java
这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。

利用反射机制创建一个类的对象

Class c = Class.forName("包名.A");
Object o = c.newInstance();//即创建一个A类的对象,与A a = new A();效果相同

利用反射机制获取类的属性值及为其赋值

		Class class1  = Class.forName("Reflect.Person");	
		Object o = class1.newInstance();
		Field f = class1.getDeclaredField("age");//这里的age是Person类的一个属性名称
		f.setAccessible(true);//若age的修饰符为private,则打破封装性
		f.set(o, 20);//为其赋值
		System.out.println(f.get(o));//输出该对象age属性值

反射机制的常用其他方法
Class对象常用调用的方法

getDeclaredMethod(String name, Class<?>… parameterTypes)返回值为 Method 该方法用于获取某个类里的指定方法 (非构造方法)
getDeclaredMethods()返回值为 Method[] ,即该类的所有方法(非构造方法)
getDeclaredConstructors()返回值为Constructor[] ,即该类的所有构造方法
getInterfaces()返回值为Class[] ,表示该类的所有接口
getSuperclass()得到其父类对象
getName()返回包名.类名
getSimpleName()返回类名
getModifiers()返回值为Int,表示该类的修饰符通常与Modifier.toString(int mod)联合使用

Method对象调用的方法

getReturnType()返回值为Class 即返回该方法的返回类型
getModifiers()返回值为int ,表示该方法的修饰符通常与Modifier.toString(int mod)联合使用
getName()返回方法名
getParameterTypes()返回值为Class[] ,即返回该方法所有的参数类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值