JAVA反射获取私有值和调用私有方法
2018-01-09 00:00
501 查看
首先定义一个JAVA实体
接下来是获取私有值name并修改,获取私有方法setName,并调用(展示实体内容用了fastjson)
运行结果
package serializable; import java.io.Serializable; /** * @author fyj: * @version 创建时间:2018年1月9日 上午11:03:51 * 类说明 */ public class Entity implements Serializable{ private static final long serialVersionUID = 1L; private String name; private String comment; public Entity(){ this.name="test"; this.comment="comment"; } public String getName() { return name; } @SuppressWarnings("unused") private void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }
接下来是获取私有值name并修改,获取私有方法setName,并调用(展示实体内容用了fastjson)
package serializable; import java.lang.reflect.Field; import java.lang.reflect.Method; import com.alibaba.fastjson.JSON; /** * @author fyj: * @version 创建时间:2018年1月9日 下午2:30:32 * 类说明 */ public class Clazz { @SuppressWarnings({ "unchecked", "rawtypes" }) public static void main(String[] args) { Entity entity = new Entity(); System.out.println(JSON.toJSON(entity)); Class clazz = entity.getClass(); Field f; try { f =clazz.getDeclaredField("name"); f.setAccessible(true); f.set(entity, "test1"); System.out.println(JSON.toJSON(entity)); } catch (Exception e) { e.printStackTrace(); } Method method; try { method = clazz.getDeclaredMethod("setName",String.class); method.setAccessible(true); method.invoke(entity,"test2"); System.out.println(JSON.toJSON(entity)); } catch (Exception e) { e.printStackTrace(); } } }
运行结果
{"name":"test","comment":"comment"} {"name":"test1","comment":"comment"} {"name":"test2","comment":"comment"}
相关文章推荐
- java反射获取类实例并调用私有方法
- java 使用反射机制来获取私有方法和成员变量
- java利用反射来调用一个类的私有方法和成员变量
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- java反射调用private方法,获取修改private属性值
- Java反射高级应用--利用反射调用类的私有方法修改私有方法值,以及替换Java的类成员数据
- 利用java的反射机制调用类的私有方法及私有属性
- java通过反射获取调用变量以及方法
- Java 反射 调用私有域和方法(setAccessible)
- java反射调用私有方法和修改私有属性
- java反射中两种方法的不同(反射能否实现对类的私有方法的调用)
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- Java反射高级应用--利用反射调用类的私有方法修改私有方法值,以及替换Java的类成员数据
- 待补充:java类里的私有变量问题,在对象A里有一个对象B,调用对象B的方法获取变量,会有短暂的缓存
- java 通过反射获取调用类方法及属性
- 论java之反射机制,访问类中私有变量,调用私有方法
- Java反射学习总结二(用反射调用对象的私有属性和方法)
- Android(java)学习笔记108:通过反射获取私有构造方法并且使用
- Android获取apk签名信息(举例说明java反射调用方法步骤)
- 测试 java反射Reflection中 获取 类属性、方法、构造方法及 调用类方法改变 对象属性