【Java/Reflection】使用Java反射技术调用对象指定函数的方法
反射提供了从设定文本到执行代码间的顺畅通道,某些场合使用能事半功倍。
下文提供了使用Java反射技术调用对象指定函数的方法,仅供参考。
【代码】
package com.hy.lab; import java.lang.reflect.Constructor; import java.lang.reflect.Method; public class ReflectTest { public int sum(String prompt,int[] args){ int result=0; for(int item:args){ result+=item; } System.out.println(String.format("%s=%d",prompt,result)); return result; } public static void main(String[] args) throws Exception{ // 由类全路径得到类 Class clz = Class.forName("com.hy.lab.ReflectTest"); // 得到无参构造函数 Constructor constructor=clz.getConstructor(); // 由构造函数生成实例 Object instance=constructor.newInstance(); // 反射得到方法 Method method = clz.getMethod("sum", new Class[]{String.class,int[].class}); int[] params=new int[]{1,2,3,4,5}; // 调用实例的方法 Object result = method.invoke(instance, new Object[]{"Sumary",params}); } }
【输出】
Sumary=15
END