java反射之成员变量的反射
2015-10-11 00:00
507 查看
摘要: java反射
public class ReflectTest { public static void main(String[] args) throws Exception { //成员变量的反射 ReflectPoint pt1 = new ReflectPoint(3, 5); Field fieldY = pt1.getClass().getField("y"); System.out.println(fieldY.get(pt1));//5 因为y是公有属性,可以直接得到 Field fieldX = pt1.getClass().getDeclaredField("x"); fieldX.setAccessible(true); System.out.println(fieldX.get(pt1));//3 x是私有属性,使用getDeclaredField,然后setAcces sible(true) changeStringValue(pt1); System.out.println(pt1);//aall:aasketaall:itcast } private static void changeStringValue(Object obj) throws Exception { Field[] fields = obj.getClass().getFields(); for(Field field :fields){ if(field.getType()==String.class){ String oldValue = (String) field.get(obj); String newValue = oldValue.replace('b', 'a'); field.set(obj, newValue); } } } } public class ReflectPoint { private int x; public int y; public String str1 = "ball"; public String str2 = "basketball"; public String str3 = "itcast"; public ReflectPoint(int x, int y) { super(); this.x = x; this.y = y; } @Override public String toString(){ return str1+":"+str2+":"+str3; } }
相关文章推荐
- java 线程学习笔记(二)
- eclipse、android studio快速输入System.out.println();
- C#和Java访问修饰符的比较
- Java Lambda表达式
- Myeclipse9.1 配置反编译插件jad
- java可执行jar包的运行
- Java连接Microsoft SQL Server 2005的方法
- maven eclipse 配置
- VisualSvn Server 的配置以及和NetBeans的搭配使用
- java命令行语句
- Ubuntu 14.04上的eclipse老是crash
- Java 父类子类的对象初始化过程
- Eclipse版本区别
- Spring注入的问题
- 【Spring】Spring的定时任务
- struts2框架搭建
- Eclipse使用sublime主题
- myeclipse黑色主题怎么还原
- ***6.21-豆机 梅花瓶 高尔顿瓶
- Java 线程池的使用好处