反射机制 是的运行中的java程序可以对自身进行检测 并可以直接对程序的内部属性进行操作
constructor用来描述一个类的构造方法 field 用来描述一个类的成员变量 method 用来描述一个雷的方法 modifer用来描述各元素的修饰符
array方法 用来对数组进行操作
getField方法获得public成员变量
getFields方法获得所有public成员变量
getDeclardField方法获得指定成员变量
getMethod和上面的方法一样
package com.kevinswift.reflect;
import java.lang.reflect.Field;
public class reflectTest {
private String username;
private String password;
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//创建对象 同时进行初始化
reflectTest test = new reflectTest("kevinaaa", "123456");
run(test);
}
public reflectTest(String name,String password){
this.username = name;
this.password = password;
}
//静态方法run
public static void run(Object obj) throws Exception{
//获取obj.getclass类获得所有成员的列表 存放在fields中
Field fields[] = obj.getClass().getDeclaredFields();
System.out.println("替换之前:");
//对fields数组中的值进行迭代
for(Field field:fields){
//打印当前存放的obj对象属性值和属性名
System.out.println(field.getName() + "=" + field.get(obj));
if(field.getType().equals(java.lang.String.class)){
//设置为true进行修改
field.setAccessible(true);
String org = (String)field.get(obj);
//将所有字符串a用b代替
field.set(obj, org.replaceAll("a","b"));
}
}
System.out.println("兑换之后");
for(Field field : fields){
System.out.println(field.getName() + "=" + field.get(obj));
}
}
}
这样即可