`
awaitdeng
  • 浏览: 216999 次
  • 性别: 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反射应用实例, 包含利用反射方法创建对象(使用默认构造函数和自定义构造函数),访问对应对象的方法(包括带参数的和不带参数的),访问对应对象的域(Field). 从这里可以看到代码的详细解说:...

    JAVA 反射机制应用

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...

    JAVA反射机制应用

    JAVA反射机制应用 JAVA反射机制是JAVA语言中的一种动态机制,它能够在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法。这种动态获取的信息以及动态...

    Java反射技术的一般应用

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

    java反射机制应用

    ### Java反射机制应用详解 #### 一、Java反射机制简介 Java反射机制是Java语言提供的一种能在运行时分析类信息并动态操作对象的功能。通过反射,我们可以在程序运行期间获取类的信息(如类名、方法名等),创建...

    java反射 java反射 java反射java反射

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...

    JAVA反射机制及应用例子

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

    Java反射性能测试分析

    ### Java反射性能测试分析 #### 引言 Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的...

    Java反射机制总结

    - **运行时装配**:Java反射允许程序在运行时动态地加载类和创建对象,这对于构建可扩展的应用程序非常有用。 - **元数据查询**:开发人员可以利用反射来查询类的元数据,如字段名、方法签名等。 - **动态调用方法**...

    Java反射简单应用

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

    java反射-英文版反射规范

    Java反射广泛应用于框架开发、动态代理、测试工具等领域。例如,在Spring框架中,反射被用来动态创建对象和调用方法;在Hibernate等ORM框架中,反射用于处理数据库记录与Java对象之间的映射关系。 #### 三、反射...

    java面试题--反射机制

    通过本文,我们将深入探讨Java反射机制的核心概念、基本原理及其应用场景。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时获取类的信息,这使得Java具有了一定程度上的动态性。具体来说,Java反射机制...

    Java反射经典实例

    本实例将深入探讨Java反射的应用及其重要性。 一、什么是Java反射 Java反射机制允许我们动态地获取类的信息,并在运行时创建和调用对象的方法。这种能力使得Java具有高度的灵活性和动态性,特别是在处理跨版本兼容...

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    反射实例-JAVA反射机制

    ### 反射实例—JAVA反射机制 #### 一、反射概念及原理 ...总结而言,Java反射机制是构建灵活、可扩展应用程序的强大工具。然而,在使用反射时,开发者应当权衡其带来的好处和潜在的风险,确保合理有效地利用这一特性。

    JAVA反射机制的入门代码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...

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

    ### Java的反射机制及其实际应用 #### 一、引言 ...总之,Java反射机制是一项强大的工具,它能够在运行时动态地获取和操作类的信息。然而,应该谨慎使用反射,避免滥用造成不必要的性能损失或安全风险。

    Java反射机制经典案例

    Java反射机制是Java编程语言中的一个强大...通过以上介绍,我们了解了Java反射机制的基本概念、使用方法、应用场景以及需要注意的问题。在实际编程中,合理利用反射可以提高代码的灵活性,但同时也需注意其潜在的风险。

    java反射机制详解与应用

    本文将深入探讨Java反射机制的原理、应用以及如何使用反射API。 首先,让我们了解如何生成Class对象,这是反射操作的基础。Class对象代表了Java中的类,可以通过以下四种方式获取: 1. 使用`getClass()`方法:每个...

    java 反射得到某个方法

    在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...

Global site tag (gtag.js) - Google Analytics