本文是《Java中反射学习系列教程》中的第五篇文章,如果想系统的学习反射技术,建议跟着本教程从第一篇文章开始。本文我们接着之前的讲解。本文主要内容1:通过反射调用方法2:反射操作类的属性4.2.8 方法调用如果想要调用反射出来对象的方法,就要看method对象的方法。我们查看method对象API中可以看到:有个invoke方法参数说明:方法调用步骤:1:获取到class对象2:获取对象
本文是《Java中反射学习系列教程》中的第五篇文章,如果想系统的学习反射技术,建议跟着本教程从第一篇文章开始。本文我们接着之前的讲解。
本文主要内容
1:通过反射调用方法
2:反射操作类的属性

4.2.8 方法调用
如果想要调用反射出来对象的方法,就要看method对象的方法。我们查看method对象API中可以看到:有个invoke方法

参数说明:

方法调用步骤:
1:获取到class对象
2:获取对象实例
3:获取对象方法
4:方法调用invoke方法
Demo实例代码:
/** * 方法调用 */ @Test public void invokeMethodTest()throws Exception{ //1:获取到class对象 Class clazz1 = Class.forName("com.kaigejava.domain.Student"); //2:获取对象实例 Constructor<?> constructor = clazz1.getConstructor(); Student student = (Student)constructor.newInstance(); Class [] methodParamArgs = new Class[]{String.class}; //3:获取对象方法 获取到setSchoolName方法 Method setSchoolNameMethod = clazz1.getMethod("setSchoolName",methodParamArgs); //4:方法调用invoke方法 set方法调用 setSchoolName方法 setSchoolNameMethod.invoke(student,new Object[]{"北京大学附属中学"}); log.inf
|