在Java中,我们可以使用反射来动态地调用方法,并传入不固定的对象。以下是一个示例代码:

import java.lang.reflect.Method;

public class DynamicMethodInvocation {
    public static void main(String[] args) throws Exception {
        // 创建一个ExactUserCacheQueueVo对象
        ExactUserCacheQueueVo exactUserCacheQueueVo = new ExactUserCacheQueueVo();

        // 获取exactUserCacheQueueVo的Class对象
        Class<?> exactUserCacheQueueVoClass = exactUserCacheQueueVo.getClass();

        // 获取exactUserCacheQueueVo的方法名和参数类型
        String methodName = "methodName"; // 替换为实际的方法名
        Class<?>[] parameterTypes = {String.class, int.class}; // 替换为实际的参数类型

        // 获取exactUserCacheQueueVo的方法对象
        Method method = exactUserCacheQueueVoClass.getMethod(methodName, parameterTypes);

        // 准备方法的参数
        Object[] arguments = {"argument1", 2}; // 替换为实际的方法参数

        // 调用方法
        Object result = method.invoke(exactUserCacheQueueVo, arguments);

        // 打印方法的返回值
        System.out.println("返回值: " + result);
    }
}

class ExactUserCacheQueueVo {
    // 定义一个示例方法
    public void methodName(String arg1, int arg2) {
        System.out.println("方法被调用,参数1: " + arg1 + ", 参数2: " + arg2);
        // 添加具体的方法逻辑
    }
}

在上面的示例中,我们首先创建了一个ExactUserCacheQueueVo对象,并获取其Class对象。然后,我们使用getMethod()方法获取指定方法的Method对象,该方法需要传入方法名和参数类型。接下来,我们准备方法的参数,并使用invoke()方法来调用该方法,需要传入对象实例和参数。最后,我们可以通过invoke()方法的返回值获取方法的返回值。

请注意,上面示例中的方法名和参数类型都是示例,你需要替换为实际使用的方法名和参数类型。


原文地址: https://www.cveoy.top/t/topic/i8zC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录