利用反射原理用get/set方法设置属性(也可用clone,但如果有特殊处理的东西,这个好用)
来源:互联网 发布:岳不群 知乎 编辑:程序博客网 时间:2024/06/05 01:17
先创建一个POJO,如User,里面所有属性都用get/set方法,假设original是User的一个实例对象,已经设置了各种属性,现在要把属性赋值到新对象里去。
public User testCopy(User original){User copy=new User();Class<User> cla=(Class<User>) original.getClass();Method[] ffs=cla.getDeclaredMethods();//获取所有声明的方法,不包含父类里的方法for (Method method : ffs) {//如果有需要特殊处理的可以这样写if(method.toString().contains(".getBjs()")){//处理过程continue;}if(method.toString().contains(".get")){//获取get方法Object obj=method.invoke(original, null);//获取调用get方法后获得的对象if(obj!=null){Class[] cls=new Class[]{obj.getClass()};//返回值类型数组,后面调用对应set方法时要用此类型对应的参数类型String str=method.toString();int start=str.indexOf(".get");str=str.substring(start, str.length());String setmethod=str.replace(".get", "set").replace("()", "");//处理含包名、类名、方法名及括号的get方法,变成只有方法名且没有括号的set方法Method m=cla.getDeclaredMethod(setmethod,cls);//set方法的参数类型和get方法的返回值类型对应m.invoke(copy, obj);//调用set方法设置值}}}return copy;}
阅读全文
0 0
- 利用反射原理用get/set方法设置属性(也可用clone,但如果有特殊处理的东西,这个好用)
- Java反射实体类属性(get ,set方法)
- Java反射实体类属性(get ,set方法)
- 反射的set/get属性值
- 培养好习惯是很难,但也有方法
- thinking in java的private方法,但不知道这个有什么用
- 反射类的使用ReflectUtil(设置set和获取get某个类属性值)
- 反射类的使用ReflectUtil(设置set和获取get某个类属性值)
- C#中的get和set有什么用 声明属性
- 用JAVA Bean 反射得到set,get方法
- 利用属性名称配置,自动转换成java bean对象的set、get方法的方法
- 属性 set ,get 方法
- java 私有属性加get/set方法跟直接把属性设置成public有区别吗?
- JS属性的get和set方法
- 反射操作get、set方法
- winform处理特殊按键的好方法
- 通过反射将一个对象的值赋给另一个对象中对应的属性 不需要用set、get
- 好用的东西
- 阿里云PAI
- android 五角星画法 五角星计算公式
- 剑指offer 35---查找第一个只出现一次的字符
- Zuul动态路由及动态Filter实现
- Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
- 利用反射原理用get/set方法设置属性(也可用clone,但如果有特殊处理的东西,这个好用)
- setFillAfter失效
- 大数专题A
- 重写与重载的区别
- python 归并排序 与 快速排序 速度对比
- POJ 2533 Longest Ordered Subsequence(最长上升子序列模版)
- Nginx配置详解
- Python爬虫Requests模块系列之六
- 怎么写一个可变参数的宏