`
awaitdeng
  • 浏览: 214045 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java反射应用1

阅读更多
项目中需求是这样的。

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 反射机制应用

    Java反射应用实例

    代码主要实现了Java反射应用实例, 包含利用反射方法创建对象(使用默认构造函数和自定义构造函数),访问对应对象的方法(包括带参数的和不带参数的),访问对应对象的域(Field). 从这里可以看到代码的详细解说:...

    Java反射技术的一般应用

    在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...

    java反射机制应用

    java反射机制应用,文档中列举了使用java反射机制的各个应用场景,加以代码实例,使用学习非常方便。

    JAVA反射机制应用

    描述JAVA反射机制应用、举例。描述反射机制的具体实现及方法实现。

    JAVA反射机制及应用例子

    JAVA反射机制及应用例子.。。Reflection API

    Java反射简单应用

    几个小demo,介绍了反射的几个api操作,最后写了一个简单的Java反射应用:工厂+反射+配置文件。

    java反射机制详解与应用

    java反射机制详解与应用

    java的反射机制及其实际应用

    Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源...

    Java反射机制经典案例

    Java反射机制经典案例

    java反射应用详细介绍.rar

    java反射应用详细介绍.rar

    Java方法反射调用demo

    Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法

    java反射技术源码

    java反射技术应用的很广泛,多看源码,对理解java反射的理解会有很好的认识,这个源码有我自己的理解在里边

    java反射知识点

    首先,下载此资源要明白什么是反射。 对于任意一个类,都能够知道这个类的所有属性和方法;...1.反射数组应用 2.反射main方法 3.反射代理(设计模式) 4.反射数据库操作 5.反射框架 6.反射其他的 希望大家可以给我好评

    Java反射性能测试分析

    对在Java环境下应用反射的性能,做了测试分析

    Java试题-3:反射和泛型的综合应用

    Java试题-3:反射和泛型的综合应用 Java反射 泛型都是比较高级的应用技术

    java中反射的概念

    通过学习后,保证初学者对反射有一个很好的理解,有助于之后对反射的进一步...其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。

    Java反射学习和反射的应用场景干货都在这里

    文章目录一、Java反射定义二、Java反射机制实现1、Class对象获取2、获取class对象的摘要信息3、获取class对象的属性、方法、构造函数等三、反射的应用场景1、动态代理2、自定义注解实现日志管理 写在前面:Java反射...

    java反射机制讲解与应用举例

    关于java反射机制的很好的讲解,包括Java的反射机制(Reflection)、Class类、如何获得类的相关信息和运用,并且还有相应的练习,有助于更好地学习java反射机制

    反射实例-JAVA反射机制

    Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件 之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内 部信息,而不是...

Global site tag (gtag.js) - Google Analytics