反射认识_03_改变成员变量Fields
1 2 3 4 5 6 7 8 9 10 11 12 | 包 01 :<br> package ReflectionChange; public class ReflectionPoint_AB { String str1= "access" ; String str2= "change" ; String str3= "reflection" ; @Override public String toString(){ return str1+ ":" +str2+ ":" +str3; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 包 02 :<br> package ReflectionChange; import java.lang.reflect.Field; public class Change_AB { public static void main(String[] args) throws Exception { ReflectionPoint_AB rp= new ReflectionPoint_AB(); ChangeStr(rp); System.out.println(rp); } public static void ChangeStr(Object obj) throws Exception{ Field[] fields=obj.getClass().getFields(); //通过对象,获得对象的类,通过类获得成员变量 for (Field field : fields) { if (field.getType()==String. class ){ String oldStr = (String)field.get(obj); //获得属于某个对象的变量 System.out.println(oldStr); String newStr = oldStr.replace( 'a' , 'b' ); //修改变量:作a换成b的修改 System.out.println(newStr); field.set(obj, newStr); } } } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步