Java 反射调用动态方法
- package com.pigetest.util;
- import java.lang.reflect.Method;
- public class PrivateMethodTestHelper {
- public static Object invoke(String clazzName,String methodName,Object...params){
- try {
- Class<?> clazz=Class.forName(clazzName);
- Object obj=clazz.newInstance();
- Method[] methods = clazz.getDeclaredMethods();
- Method callMethod=null;
- for(Method method:methods){
- if(method.getName().equals(methodName)){
- callMethod=method;
- break;
- }
- }
- callMethod.setAccessible(true);
- return (Object) callMethod.invoke(obj,params);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- public static void main(String[] args) {
- int value=(Integer) PrivateMethodTestHelper.invoke("com.pigetest.util.AddNumber","addNumber",1,2);
- System.out.println(value);
- }
- }