项目中需求是这样的。
if(modifyContent.getModifyOject().equals("EnterpriseInfo")){
Field efiledName =enterpriseInfo.getClass().getDeclaredField(modifyContent.getItemCode());
String setName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
// System.out.println(mf.getModifyContent().getClass());
// System.out.println(efiledName.getType());
Class cla = efiledName.getType();
Class[] paraTypes = new Class[1];
paraTypes[0]=String.class;
Constructor constructor = cla.getConstructor(paraTypes);
Object[] paraLists = new Object[1];
paraLists[0]=modifyContent.getModifyContent();
Object obj = new Object();
if(cla.newInstance() instanceof Date ){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
obj = dateFormat.parse(modifyContent.getModifyContent());
}else{
obj = constructor.newInstance(paraLists);
}
Method setMethod =enterpriseInfo.getClass().getMethod(setName, new Class[]{efiledName.getType()});
setMethod.invoke(enterpriseInfo,new Object[]{obj});
}
else if(modifyContent.getModifyOject().equals("ManagInfo")){
if(modifyContent.getManagerType().equals("1")){//企业法人
if(modifyContent.getItemCode().equals("managName")){
//构建set方法名
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managType")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managId")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managNat")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managTitle")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managBir")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managDegree")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managAddr")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managTelBp")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}else if(modifyContent.getItemCode().equals("managNote")){
String setMethodName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
this.doMethod(setMethodName, modifyContent);
}
}
}
/**
* 方法描述:
* @return: void
* @version: 1.0
* @author: LUYD
* @version: Jul 1, 2011 4:58:50 PM
*/
public void doMethod(String setMethod, ModifyContent modifyContent) throws Exception{
Field mfiledName =ManagInfo.class.getDeclaredField(modifyContent.getItemCode());
//构建set方法名
//String setName="set"+modifyContent.getItemCode().substring(0, 1).toUpperCase()+modifyContent.getItemCode().substring(1);
Class cla = mfiledName.getType();
Class[] paraTypes = new Class[1];
paraTypes[0]=String.class;
Constructor constructor = cla.getConstructor(paraTypes);
Object[] paraLists = new Object[1];
paraLists[0]=modifyContent.getModifyContent();
Object obj = new Object();
if(cla.newInstance() instanceof Date ){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
obj = dateFormat.parse(modifyContent.getModifyContent());
}else{
obj = constructor.newInstance(paraLists);
}
Method method =managInfoPoJo.getClass().getMethod(setMethod, new Class[]{mfiledName.getType()});
method.invoke(managInfoPoJo,new Object[]{obj});
}
分享到:
相关推荐
JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用
代码主要实现了Java反射应用实例, 包含利用反射方法创建对象(使用默认构造函数和自定义构造函数),访问对应对象的方法(包括带参数的和不带参数的),访问对应对象的域(Field). 从这里可以看到代码的详细解说:...
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...
java反射机制应用,文档中列举了使用java反射机制的各个应用场景,加以代码实例,使用学习非常方便。
描述JAVA反射机制应用、举例。描述反射机制的具体实现及方法实现。
JAVA反射机制及应用例子.。。Reflection API
几个小demo,介绍了反射的几个api操作,最后写了一个简单的Java反射应用:工厂+反射+配置文件。
java反射机制详解与应用
Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源...
Java反射机制经典案例
java反射应用详细介绍.rar
Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法
java反射技术应用的很广泛,多看源码,对理解java反射的理解会有很好的认识,这个源码有我自己的理解在里边
首先,下载此资源要明白什么是反射。 对于任意一个类,都能够知道这个类的所有属性和方法;...1.反射数组应用 2.反射main方法 3.反射代理(设计模式) 4.反射数据库操作 5.反射框架 6.反射其他的 希望大家可以给我好评
对在Java环境下应用反射的性能,做了测试分析
Java试题-3:反射和泛型的综合应用 Java反射 泛型都是比较高级的应用技术
通过学习后,保证初学者对反射有一个很好的理解,有助于之后对反射的进一步...其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。
文章目录一、Java反射定义二、Java反射机制实现1、Class对象获取2、获取class对象的摘要信息3、获取class对象的属性、方法、构造函数等三、反射的应用场景1、动态代理2、自定义注解实现日志管理 写在前面:Java反射...
关于java反射机制的很好的讲解,包括Java的反射机制(Reflection)、Class类、如何获得类的相关信息和运用,并且还有相应的练习,有助于更好地学习java反射机制
Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件 之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内 部信息,而不是...