java 根对象_Java高级开发反射手段更换对象根节点内容

新建对像类,其中包括两个私有属性

class Person {

//定义对象的两个私有属性

private String name = "张三";

private String age = "23";

public String getName() {

return name;

}

public String getAge() {

return age;

}

}

置换根节点内容的操作

Person person = new Person();

System.out.println("age is "+person.getAge()+"\t name is "+person.getName());

//age is 23 name is 张三

String name = person.getName();

String age = person.getAge();

//通过反射的方法将对象两个根节点内容进行转换

//反射手段获取一个对象

Class c = person.getClass();

//获取对象中指定的属性

Field field1 = c.getDeclaredField("name");

Field field2 = c.getDeclaredField("age");

//由于这里我们进行操作的属性是私有的要权限,所以要使用暴力反射

field1.setAccessible(true);

field2.setAccessible(true);

//对其属性进行新的设置

//改变age节点内容

field1.set(person, age);

//改变name节点内容

field2.set(person, name);

System.out.println("age is "+person.getAge()+"\t name is "+person.getName());

//age is 张三 name is 23

}

本文同步分享在 博客“早起的年轻人”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值