------- android培训、java培训、期待与您交流! ----------
public class ReflectTestPoint {
private String itcastBBs = "bbs.itcast.com";
private String itheimaBBs = "bbs.itheima.com";
private String itcastWeb = "www.itcast.com";
private String itheimaWeb = "www.itheima.com";
@Override //使用这个如果方法名称错误 就报错
public String toString(){
return itcastBBs+":::=="+itheimaBBs+":::=="+itcastWeb+":::=="+itheimaWeb;
}
}
package cn.itcast.day02.test;
import java.lang.reflect.Field;
public class ReflectTestWork {
/**
* 测试要求: 我们使用反射获取ReflectTestPoint字节码文件中的字段,把值里面的bbs更换成wwwweb
* @param args
*/
public static void main(String[] args) throws Exception {
ReflectTestPoint rtp2 = new ReflectTestPoint();
// 我们先获取字节码文件中的所有的对象
// 因为我们的bean中是私有的字段所以我们使用DeclaredFields来进行获取
// Field[] rtps=ReflectTestPoint.class.getDeclaredFields();
Field[] rtps = rtp2.getClass().getDeclaredFields();
// 遍历数组
for (Field field : rtps) {
// 因为里面有私有的方法所以我们需要开启暴力反射
field.setAccessible(true); // 开启暴力反射
// 获取字段的值
// 如何判断字段的类型了
// 如果字段是字符串的类型
if (field.getType() == String.class) {
// 获取里面的值
// String oldValue=(String) field.get(new ReflectTestPoint());
String oldValue = (String) field.get(rtp2);
System.out.println("字段:" + field.getName() + "原始值:" + oldValue);
/**
* 字段都获取出来了 字段:itcastBBs原始值:bbs.itcast.com
* 字段:itheimaBBs原始值:bbs.itheima.com
* 字段:itcastWeb原始值:www.itcast.com
* 字段:itheimaWeb原始值:www.itheima.com
*/
// String newValue = oldValue.replace('b', 'w');
String newValue=oldValue.replace("bbs", "www");
// 将修改后的值设置给对象
field.set(rtp2, newValue); // 使用字段对象把修改后的值设置给对象ReflectTestPoint中的字段
System.out.println("更新后的数据:"+rtp2);
/**
* 字段:itcastBBs原始值:bbs.itcast.com
更新后的数据:wws.itcast.com:::==bbs.itheima.com:::==www.itcast.com:::==www.itheima.com
字段:itheimaBBs原始值:bbs.itheima.com
更新后的数据:wws.itcast.com:::==wws.itheima.com:::==www.itcast.com:::==www.itheima.com
字段:itcastWeb原始值:www.itcast.com
更新后的数据:wws.itcast.com:::==wws.itheima.com:::==www.itcast.com:::==www.itheima.com
字段:itheimaWeb原始值:www.itheima.com
更新后的数据:wws.itcast.com:::==wws.itheima.com:::==www.itcast.com:::==www.itheima.com
*/
//怎么实现替换字符串了?
/**
* 字段:itcastBBs原始值:bbs.itcast.com
更新后的数据:www.itcast.com:::==bbs.itheima.com:::==www.itcast.com:::==www.itheima.com
字段:itheimaBBs原始值:bbs.itheima.com
更新后的数据:www.itcast.com:::==www.itheima.com:::==www.itcast.com:::==www.itheima.com
字段:itcastWeb原始值:www.itcast.com
更新后的数据:www.itcast.com:::==www.itheima.com:::==www.itcast.com:::==www.itheima.com
字段:itheimaWeb原始值:www.itheima.com
更新后的数据:www.itcast.com:::==www.itheima.com:::==www.itcast.com:::==www.itheima.com
*/
}
}
}
}