`

Java中的反射机制使用总结

阅读更多

现在再总结一下最近使用的反射机制:
一.反射使用:根据函数名称查找对应的函数并执行
1.调用的函数的传入参数为空,例子如下:

//获取需要调用的方法所在的类的实例
	Object object = Class.forName("com.cnpc.services."+className).newInstance();
// 返回方法名为functionName的一个 Method 对象,后面跟的是该方法参数
				Method method = object.getClass().getMethod(functionName,null);
method.invoke(object,null);


2.调用的函数的传入参数为一个List<T>类型,例子如下:

List<Object> provideBeanList =  CommonJSONListOperation(content, provideClass);
					// 返回方法名为functionName的一个 Method 对象,后面跟的是该方法参数
					Method method = object.getClass().getMethod(functionName,
							new Class[]{List.class});
					// 执行该方法
					result = JSONTransfer.getJsonArrStrFromList(method.invoke(object,
							provideBeanList));


二反射使用:根据一个对象,遍历该对象的各个属性,并找到对应的属性赋值,下边以Date类型为里,遍历对象中的属性,如果属性中含有Date类型,则判断,如果该Date类型的属性为null,则new一个赋值,否则不做操作:

	Field[] fields = obj.getClass().getDeclaredFields();
			for(Field f:fields)
			{
				if(f.getType().toString().equals("class java.util.Date"))
				{
					
					String dateName = f.getName();
					Object o;			
					String functionNameGet = "get"+toUpperrCaseInitial(dateName);
					String functionNameSet = "set"+toUpperrCaseInitial(dateName);
					Method m = obj.getClass().getMethod(functionNameGet,null);
					if(m.invoke(obj, null)==null)
					{
						Method m_set = obj.getClass().getMethod(functionNameSet, new Class[]{java.util.Date.class});
						m_set.invoke(obj,new Object[]{new java.util.Date()});
						
					}
				}
			}

  这里是通过get,set方法实现的读取对应属性的值和设置对应属性的值,不知道还有没更简便的方法。

 

分享到:
评论

相关推荐

    Java反射机制总结

    ### Java反射机制总结 #### 反射的概念与起源 反射的概念最早由Smith于1982年提出,指的是程序能够访问、检测并修改其自身状态或行为的能力。这一概念的提出迅速引起了计算机科学领域的广泛关注,并在之后的研究中...

    java面试题--反射机制

    `Class`类在Java反射机制中扮演着核心角色,它是所有Java类的运行时表示。`Class`对象可以由以下几种方式获取: 1. **通过类的`Class`属性获取**:如`String.class`。 2. **通过对象的`getClass()`方法获取**:如`...

    Java中的反射机制

    Java反射机制允许运行中的程序检查自身,并能直接操作程序的内部属性。这是其他许多编程语言(如Pascal、C或C++)不具备的能力。 **1.1 Reflection的工作机制** 为了展示反射如何工作,我们来看一个简单的例子: ...

    java反射机制原理和反射机制总结

    总结,Java反射机制是Java平台灵活性和动态性的体现,它极大地扩展了Java程序的能力,但同时也需要谨慎使用,平衡好其带来的便利和潜在问题。学习和理解反射机制对于深入理解Java以及开发复杂系统至关重要。

    Java反射机制学习总结

    Java反射机制是Java编程语言中一个强大的工具,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于java.lang.reflect包中的API,主要包括Class类、Constructor类、Method类和Field类。以下是...

    Java反射机制总结(实例分析)

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并进行操作。通过反射,开发者可以在程序执行时发现并访问类的字段(fields)、方法(methods)以及构造器(constructors),...

    Java反射机制 Java反射机制

    Java反射机制在JDK 1.1版本中就已经引入,但在JDK 1.5之后得到了进一步增强和完善,增加了泛型支持等功能,使得反射更加安全和强大。 #### 三、Java反射机制的核心概念与应用 1. **核心概念** - **Class对象**:...

    Java 1.5 反射机制

    总结来说,Java 1.5的反射机制极大地增强了Java的灵活性和动态性,使得开发者能够编写更加灵活和适应性强的代码。然而,反射也带来了一些潜在的性能开销和安全风险,因此在使用时需要谨慎。在理解和掌握反射机制的...

    反射实例-JAVA反射机制

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

    Java反射机制笔记(简单易懂)

    Java反射机制是Java语言中一个强大的功能,它允许程序在运行时检查和修改其自身的结构和行为。通过Java反射机制,我们可以在运行时获取类的信息,包括类的成员变量、方法、构造方法等,并可以动态地调用这些成员变量...

    JAVA的反射机制与动态代理.pdf

    #### 一、JAVA反射机制概述 JAVA的反射机制是一种强大的功能,允许程序在运行时获取类的信息并操作类的对象。这种能力在很多情况下非常有用,比如在进行代码框架设计时,我们经常需要在运行时根据不同的条件选择...

    利用java反射机制的建议计算器源码

    在这个“利用java反射机制的建议计算器源码”中,我们将深入探讨如何使用反射来构建一个可扩展的计算器,帮助新手更好地理解这一概念。 首先,让我们解释什么是反射。在Java中,反射机制允许我们获取类的信息(如...

    java反射机制应用

    #### 三、Java反射机制在实际项目中的应用 ##### 1. 表单数据填充 在Web开发中,表单提交的数据通常需要填充到对应的实体类中。使用反射可以实现这一功能: - 使用`Class.forName()`加载表单对应的实体类。 - 使用...

    java 反射机制例子

    Java反射机制在实际开发中有着广泛的应用,例如: 1. **动态代理**:利用反射可以创建动态代理类,这对于实现AOP(面向切面编程)非常有用。 2. **框架开发**:许多Java框架,如Spring、Hibernate等,大量使用了反射...

    JAVA中的反射机制(内含大量实例).doc

    下面将详细介绍Java反射机制的基本概念、工作机制及其应用。 #### 1. 检测类 **1.1 reflection的工作机制** 为了理解反射的工作原理,我们可以从一个简单的示例开始。下面的代码展示了如何使用Java反射API来获取...

    java反射机制总结

    ### Java反射机制总结 #### 一、Java反射机制概述 Java反射机制是Java语言的一个重要特性,它允许程序在运行时获取类的信息以及操作类的对象。这种能力使得Java程序能够实现动态性,即在编译期不知道具体类型的...

    java中反射知识总结

    Java中的反射机制是Java语言一个强大的特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java编程中,反射扮演着重要角色,尤其在动态加载类、创建对象、调用方法以及访问私有成员等...

    Java反射机制课件ppt

    Java反射机制是Java编程语言中...总结起来,Java反射机制是Java编程中一种强大的工具,它扩展了程序的动态性,使得开发者能够在运行时对类进行灵活的操作。然而,使用时需谨慎,平衡好灵活性和性能、安全性之间的关系。

Global site tag (gtag.js) - Google Analytics