反射在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反射应用实例, 包含利用反射方法创建对象(使用默认构造函数和自定义构造函数),访问对应对象的方法(包括带参数的和不带参数的),访问对应对象的域(Field). 从这里可以看到代码的详细解说:...
java反射应用详细介绍.rar
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...
JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用
这个文档讲述了反射的原理,以及class的各方面的应用举一反三,全面深入的讲述了反射的机制以及巧妙应用
几个小demo,介绍了反射的几个api操作,最后写了一个简单的Java反射应用:工厂+反射+配置文件。
NULL 博文链接:https://dragonmandance.iteye.com/blog/2336911
java反射机制应用,文档中列举了使用java反射机制的各个应用场景,加以代码实例,使用学习非常方便。
描述JAVA反射机制应用、举例。描述反射机制的具体实现及方法实现。
JAVA反射机制及应用例子.。。Reflection API
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。 下面开始正文。 【案例1】通过一个对象...
java反射机制详解与应用
文章目录一、Java反射定义二、Java反射机制实现1、Class对象获取2、获取class对象的摘要信息3、获取class对象的属性、方法、构造函数等三、反射的应用场景1、动态代理2、自定义注解实现日志管理 写在前面:Java反射...
Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源...
Java反射机制经典案例
Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法
java反射技术应用的很广泛,多看源码,对理解java反射的理解会有很好的认识,这个源码有我自己的理解在里边
对在Java环境下应用反射的性能,做了测试分析