java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。
2016-04-26 20:43
696 查看
//------------------------------------------------我是代码的分割线
// 首选是一个工具类,在该工具类里面,定义了一个方法,public void setProperty (Object obj, String propertyName, Object value)
// Object obj:所要使用的字节码class对象,String propertyName:所要获取对象的propertyName成员变量,Object value :给对象的成员变量赋值为指定的值--->value
// 就介绍到这里,直接上代码:首选是反射的工具类
//-------------------------------------------
//下面的是测试类,就是使用该工具类,经参数传递过去。。。
// 首选是一个工具类,在该工具类里面,定义了一个方法,public void setProperty (Object obj, String propertyName, Object value)
// Object obj:所要使用的字节码class对象,String propertyName:所要获取对象的propertyName成员变量,Object value :给对象的成员变量赋值为指定的值--->value
// 就介绍到这里,直接上代码:首选是反射的工具类
import java.lang.reflect.Field; public class Tool { public void setProperty(Object obj, String propertyName, Object value) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { // 根绝对象获取字节码文件 Class c = obj.getClass(); // 获取该对象的propertyName成员变量 Field field = c.getDeclaredField(propertyName); //注意你是通过参数来获取,不许加双引号“” // 取消访问检查 field.setAccessible(true); // 给对象的成员变量赋值为指定的值--->value field.set(obj, value); } }
//-------------------------------------------
//下面的是测试类,就是使用该工具类,经参数传递过去。。。
public class ToolDemo { public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { Person p = new Person(); Tool tool = new Tool(); tool.setProperty(p, "name", "java"); tool.setProperty(p, "age", 20); System.out.println(p); System.out.println("---------"); Dog d = new Dog(); tool.setProperty(d, "sex", '男'); tool.setProperty(d, "price", 12.34f); System.out.println(d); } } class Dog{ private char sex; float price; public String toString() { return sex + "---" + price; } } class Person { private String name; // 此处name是私有的,外界是无法访问的。 public int age; @Override public String toString() { return name + "---" + age; } }
相关文章推荐
- Eclipse下如何运行微信SDK_Demo
- 04.Java 基础 - 类
- java泛型(一)、泛型的基本介绍和使用
- java中使用反射往一个泛型是Integer类型的ArrayList中添加字符串,反射的案例1.
- [翻译]现代java开发指南 第二部分
- 使用Java实现折半查找
- 访问文件和目录
- java synchronized类锁,对象锁详解(转载)
- java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。
- JAVA——多线程举例
- JAVA基础总结
- java并发编程--Executor框架(一)
- Java Web防止表单重复提交
- Eclipse关联ndk-build(自建Builder方法)
- MyEclipse部署网站出现java.lang.OutOfMemoryError: PermGen space
- 使用jackson 进行json字符串转java bean报错
- java基础加强
- spring-继承
- java设计模式之装饰模式
- eclipse 和 android studio 快捷键对比