`

java反射应用

阅读更多

   反射在java中有很大用处,下面举例说明下,在java中怎么通过完整路径获取对象,调用方法。

 

1、需要通过反射获取的类

package reflectionTset.com.reflection;

public class Reflection {
	/**
	 * 带参
	 * @param name
	 * @param sex
	 * @param age
	 * @return
	 */
	public String methodParameter(String name,String sex,int age){
		System.out.println("姓名:" + name + " 性别:" + sex + " 年龄:" + age); 
		
		return "有参方法操作成功";
	}
	
	
	/**
	 * 测试反射不带参方法
	 * @param name
	 * @param sex
	 * @param age
	 */
	public String methodNoParameter(){
		System.out.println("欢迎来到无参反射测试方法"); 
		
		return "无参方法操作成功";
	}
}

 

2、测试类

package reflectionTset.com.test;

import java.lang.reflect.Method;

/**
 * 放射测试类
 * @author Administrator
 *
 */
public class ReflectionTest {
	/**
	 * 测试反射带参方法
	 * @param name
	 * @param sex
	 * @param age
	 */
	public static void methodParameterTest(){
		try {
			//返回与带有给定字符串名的类或接口相关联的 Class 对象
 			Class c = Class.forName("reflectionTset.com.reflection.Reflection");
 			//创建该class表示的一个对象
 			Object obj = c.newInstance();
 			
 			//返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法
 			//获取一个方法对象,假设方法的参数是一个int,method名为setAge
 			Method sAge = c.getMethod("methodParameter", new Class[] {String.class,String.class,int.class});
 			//设置参数
 			Object[] arguments = new Object[] {"你妹","男",29};
 			
 			//执行方法
 			//对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。个别参数被自动解包,以便与基本形参相匹配,基本参数和引用参数都随需服从方法调用转换。 
 			Object backStr = sAge.invoke(obj, arguments);
 			
 			System.out.println("执行带参方法的返回值:" + backStr);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
	}
	
	
	/**
	 * 测试反射带参方法
	 * @param name
	 * @param sex
	 * @param age
	 */
	public static void methodNoParameterTest(){
		try {
			//返回与带有给定字符串名的类或接口相关联的 Class 对象
 			Class c = Class.forName("reflectionTset.com.reflection.Reflection");
 			//创建该class表示的一个对象
 			Object obj = c.newInstance();
 			
 			//返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法
 			//获取一个方法对象,假设方法的参数是一个int,method名为setAge
 			Method sAge = c.getMethod("methodNoParameter");
 			
 			//执行方法
 			//对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。个别参数被自动解包,以便与基本形参相匹配,基本参数和引用参数都随需服从方法调用转换。 
 			Object backStr = sAge.invoke(obj);
 			
 			System.out.println("执行无参方法的返回值:" + backStr);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
	}
	
	public static void main(String[] args) {
		//带参方法测试
		methodParameterTest();
		
		//无参方法测试
		methodNoParameterTest();
	}
}

 

分享到:
评论

相关推荐

    Java反射应用实例

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

    java反射应用实例

    在标题“Java反射应用实例”中,我们关注的是如何在实际项目中利用反射来实现特定的功能。这篇博客文章(可以通过链接访问)可能会探讨以下几个方面: 1. **什么是反射**:首先,我们需要理解反射的基本概念。反射...

    Java反射技术的一般应用

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

    java反射应用详细介绍.rar

    在深入理解Java反射的应用之前,我们首先需要知道什么是反射以及它的基本概念。 Java反射机制的核心在于`java.lang.Class`类,每个类在内存中都有一个对应的Class对象,它包含了该类的所有信息。通过`Class.forName...

    Java反射简单应用

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

    JAVA反射机制应用

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

    JAVA 反射机制应用

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

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

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

    java反射机制应用

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

    JAVA反射机制及应用例子

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

    java反射应用详细介绍

    本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。 下面开始正文。 【案例1】通过一个对象...

    Java反射性能测试分析

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

    Java反射机制总结

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

    java面试题--反射机制

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

    JAVA反射机制的入门代码

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

    Java反射经典实例

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

    java反射视频

    ### Java反射应用案例 1. **动态代理**:Java反射可以用来实现动态代理模式,其中最典型的应用是在JDK动态代理和CGLIB动态代理中。这两种技术都依赖于反射来生成代理类和调用目标方法。 2. **框架中的应用**:许多...

Global site tag (gtag.js) - Google Analytics