利用java反射机制对方法进行调用 浅浅的花香味﹌ 2022-07-12 15:53 190阅读 0赞 今天研究了一下java的反射机制,在此做个笔记。 基本步骤:首先获取Class对象,然后用该对象获取方法。具体的就看代码吧。对照本文最后的结果,会更好的理解反射机制。 将要被反射的类: package com.gzy.reflect; public class Reflect \{ private String name; private String psw; public void setName(String name)\{ this.name=name; \} public String getName()\{ return name; \} public void setPsw(String name)\{ this.psw=psw; \} public String getPsw()\{ return psw; \} \} 利用java机制的类 package com.gzy.reflect; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectUse \{ public boolean UseReflect()\{ boolean flag=false; try \{ //>>>>>>>>>>>>>>>>>>>>>> //获取某个类的Class对象有三种方式(其实就是获取类Reflect),如下: //方法一:利用Class.forName(String param); Class cls=Class.forName("com.gzy.reflect.Reflect"); //方法二:使用 类名.class //Class cls=Reflect.class; //方法三:使用getClass() //Reflect r=new Reflect(); //Class cls=r.getClass(); //<<<<<<<<<<<<<<<<<<<<<<<< System.out.println("-------------cls is "+cls+"-------------------------"); //利用获取到的类的Class对象新建一个实例(相当于Reflect new了个对象) Object obj=cls.newInstance(); System.out.println("-------------obj is "+obj+"-------------------------"); Class\[\] param=new Class\[1\]; param\[0\]=String.class; System.out.println("-------------param\[0\] is "+param\[0\]+"-------------------------"); //获取Reflect的方法,第一个参数是方法名;第二个参数是参数的类型,注意是参数的类型! Method med=cls.getMethod("setName",param); //null表示getName方法没有参数 Method med1=cls.getMethod("getName", null); System.out.println("-------------med is "+med+"-------------------------"); // Object o=med.invoke(obj, new Object\[\]\{"this is a reflect test."\}); //开始调用方法,第一个参数是调用该方法的对象;第二个参数是值,即setName方法中要传入的值 Object o=med.invoke(obj, "this is a reflect test."); System.out.println("-------------o is "+o+"-------------------------"); //方法没有 参数的话就用null表示 Object o1=med1.invoke(obj, null); System.out.println("-------------o1 is "+o1+"-------------------------"); flag=true; \} catch (InstantiationException e) \{ e.printStackTrace(); \} catch (IllegalAccessException e) \{ e.printStackTrace(); \} catch (SecurityException e) \{ e.printStackTrace(); \} catch (NoSuchMethodException e) \{ e.printStackTrace(); \} catch (IllegalArgumentException e) \{ e.printStackTrace(); \} catch (InvocationTargetException e) \{ e.printStackTrace(); \} catch (ClassNotFoundException e) \{ e.printStackTrace(); \} return flag; \} \} 测试类: package com.gzy.test; import com.gzy.reflect.ReflectUse; public class TestReflect \{ public static void main(String\[\] args)\{ boolean flag=false; ReflectUse rlu=new ReflectUse(); flag=rlu.UseReflect(); if(flag)\{ System.out.println("successful!"); \}else\{ System.out.println("fail~~~~"); \} \} \} 测试结果: \-------------cls is class com.gzy.reflect.Reflect------------------------- \-------------obj is [com.gzy.reflect.Reflect@d9f9c3][com.gzy.reflect.Reflect_d9f9c3]\------------------------- \-------------param\[0\] is class java.lang.String------------------------- \-------------med is public void com.gzy.reflect.Reflect.setName(java.lang.String)------------------------- \-------------o is null------------------------- \-------------o1 is this is a reflect test.------------------------- successful! [com.gzy.reflect.Reflect_d9f9c3]: mailto:com.gzy.reflect.Reflect@d9f9c3
相关 Java反射机制:如何动态调用方法 在Java中,反射(Reflection)是一种强大的机制,它允许我们在运行时检查类、接口和字段,以及动态调用它们的方法。 以下是如何使用Java反射动态调用方法的步骤: 约定不等于承诺〃/ 2024年09月14日 17:21/ 0 赞/ 21 阅读
相关 Java反射机制:如何动态调用方法 Java的反射机制是Java语言提供的一种允许程序在运行时检查类、字段和方法的能力。 以下是动态调用方法的基本步骤: 1. 获取对象:首先需要一个指向你想要操作的类的对象。 阳光穿透心脏的1/2处/ 2024年09月12日 16:33/ 0 赞/ 29 阅读
相关 Java反射机制理解:动态调用方法案例 Java反射机制是一种在运行时检查类、接口、字段和方法的能力。它允许我们对程序的内部行为进行控制,是Java语言强大功能之一。 下面是一个简单的动态调用方法的案例: ``` 女爷i/ 2024年09月12日 15:51/ 0 赞/ 28 阅读
相关 Java反射机制问题:无法调用静态方法 在Java中,类的静态方法可以通过对象来调用,但如果直接通过类名或者类的字节码来调用静态方法,通常会报错,因为Java不支持这种方式。 例如: ```java // 正确方 女爷i/ 2024年09月06日 06:18/ 0 赞/ 19 阅读
相关 Java反射机制:如何动态调用类方法 Java的反射机制允许我们在运行时检查和修改程序的行为。要动态调用类的方法,你可以遵循以下步骤: 1. 获取Class对象:首先需要一个对象实例来获取对应的类。例如,如果你有 墨蓝/ 2024年09月06日 03:39/ 0 赞/ 22 阅读
相关 Java反射机制:动态调用方法案例分析 在Java编程中,反射是一种强大的工具,它允许我们在运行时检查类信息、对象状态以及动态调用方法。 下面是一个具体的应用案例: 1. 创建一个类(例如Person): ``` 拼搏现实的明天。/ 2024年09月06日 00:15/ 0 赞/ 21 阅读
相关 利用java反射机制进行对象操作 我们经常使用COMMONS-BEANUTILS包来进行bean的操作,例如从map到bean获从bean到map的映射,那么实现的原理是什么呢,下面举个简单的操作的例子;首先, 落日映苍穹つ/ 2022年09月18日 08:00/ 0 赞/ 200 阅读
相关 利用java反射机制对方法进行调用 今天研究了一下java的反射机制,在此做个笔记。 基本步骤:首先获取Class对象,然后用该对象获取方法。具体的就看代码吧。对照本文最后的结果,会更好的理解反射机制。 浅浅的花香味﹌/ 2022年07月12日 15:53/ 0 赞/ 191 阅读
相关 java反射机制调用方法 这是个测试用的例子,通过反射调用对象的方法。 TestRef.java import java.lang.reflect.Method; import j 女爷i/ 2022年06月09日 13:46/ 0 赞/ 243 阅读
还没有评论,来说两句吧...