import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import com.chai.form.UserForm;
import comm.chai.vo.UserVo;
public class test {
public static void Copyreflect(Object obj1, Object obj2) {
Class classobj1 = obj1.getClass();
Class classobj2 = obj2.getClass();
Field[] fields = classobj1.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
String setMethodname = "set"
+ field.getName().substring(0, 1).toUpperCase()
+ field.getName().substring(1);
String getMethodname = "get"
+ field.getName().substring(0, 1).toUpperCase()
+ field.getName().substring(1);
try {
if (field.getType() == String.class) {
Method getmethod = classobj1.getDeclaredMethod(
getMethodname, new Class[] {});
Method setmethod = classobj2.getDeclaredMethod(
setMethodname, new Class[] { String.class });
setmethod.invoke(obj2, new Object[] { getmethod.invoke(
obj1, new Object[] {}) });
}else if (field.getType() == int.class) {
Method getmethod = classobj1.getDeclaredMethod(
getMethodname, new Class[] {});
Method setmethod = classobj2.getDeclaredMethod(
setMethodname, new Class[] { int.class });
setmethod.invoke(obj2, new Object[] { getmethod.invoke(
obj1, new Object[] {}) });
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
UserForm form = new UserForm();
form.setUsername("chai");
form.setId(1000);
UserVo vo = new UserVo();
Copyreflect(form, vo);
System.out.println(vo.getUsername()+"=="+vo.getId());
}
}
分享到:
相关推荐
反射设计系统及其网页 设计系统 目录 [NextJS]入门 首先,运行开发服务器: npm run dev # or yarn dev 用浏览器打开以查看结果。 您可以通过修改pages/index.js来开始编辑页面。 页面在您编辑文件时自动更新。 ...
此外,"refect.rar"还可能包括一些经典算法的总结、面试题目的解析、常见误区的讨论以及准备面试的技巧。在当今竞争激烈的编程领域,掌握扎实的算法基础不仅能提升个人的编程素养,还能帮助我们在求职面试中脱颖而出...
s变换用的高斯窗函数( 高斯窗是指数窗的一种,它也无负的旁瓣,而且没有旁瓣波动,因而不回引起计算谱中假的极大值或极小值,而且高斯窗频率窗函数的主瓣比指数窗的主瓣窄,分辨率比指数窗有所提高。
2021科大讯飞车辆贷违预测大赛冠军源码+全部资料.zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!
AI图像处理工具包-一键抠图、背景切换、旧照片修复、人像漫画化、视频卡通化(Python+OpenCV+Dlib+TensorFlow).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!
基于java+springboot+vue+mysql的远程教育网站设计与实现.docx
毕业设计资料,计算机毕业设计,源码,毕业论文,毕业答辩,答辩PPT,Java毕业设计,php毕业设计,ASP.NET毕业设计,毕业指导,计算机作业,php作业,java作业,ASP.NET作业,编程作业,管理系统,网站,app,毕业设计学习,Java学习,php学习,ASP.NET学习,java课程,php课程,ASP.NET课程,答辩技巧,SQLSERVER数据库,Mysql数据库,jdbc,SSM框架,SpringBoot框架,Html5,小程序
蓝牙串口助手,可以连接HC-05等蓝牙模块,实现单片机设备与手机通讯,安卓手机,蓝牙调试助手,具有按键功能!
TriLib 2 是一个跨平台的运行时 3D 模型导入器