java反射示例

package COM.JAVA.STUDY.REFLECT;


public class Private {
private String name = "zhangsan";
    

private void setName(String name){
this.name = name;
}

public String getName() {
return name;
}
}

package COM.JAVA.STUDY.REFLECT;


import java.lang.reflect.Field;
import java.lang.reflect.Method;


public class PrivateTester{


public static void main(String[] args) throws Exception{
Private p = new Private();
// Private.class;
System.out.println("最早的"+p.getName());

Class> classType  = p.getClass();

Field field = classType.getDeclaredField("name");
field.setAccessible(true);
field.set(p, "lisi");
System.out.println("第一次修改的"+classType.getDeclaredMethod("getName", new Class[]{}).invoke(p, new Object[]{}));

Object obj = classType.newInstance();
Method method = classType.getDeclaredMethod("setName", new Class[]{String.class});
method.setAccessible(true);
method.invoke(obj, "第二个对象");
Private pobj = (Private) obj;
System.out.println("第二次修改的"+ pobj.getName());
}
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29227735/viewspace-1256713/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29227735/viewspace-1256713/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值