java 字符串调用方法

该博客主要介绍了如何在Java中使用反射API动态调用对象的方法。内容包括获取类对象,通过方法名和参数类型获取Method对象,设置访问权限并执行方法,以及捕获可能的异常情况。这个代码片段展示了如何灵活地在运行时调用非静态方法。
摘要由CSDN通过智能技术生成

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;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值