java 字符串调用方法

public class CallMethod {
/**
*
* @param obj 传进来的对象
* @param method1 方法名
* @param paramTypes 参数类型[]
* @param params 参数[]
* @return
*/
public static Object call(Object obj,String method1, Class[] paramTypes, Object[] params) {
try {
//加载类,参数是完整类名
//Class clazz = Class.forName(className);
Class<?> clazz = obj.getClass();
//第一个参数是方法名,后面的参数指示方法的参数类型和个数
Method method = clazz.getMethod(method1, paramTypes);

        //accessiable设为true表示忽略java语言访问检查(可访问private方法)
        method.setAccessible(true);

        //第一个参数类实例(必须有对象才能调用非静态方法,如果是静态方法此参数可为null)
        //第二个是要传给方法的参数
        Object result = method.invoke(obj, params);

        return result;

    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

}


版权声明:本文为F945464原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。