如何在 Java 中调用具有任意数量参数和任意数据类型的任意方法

How to call any methods having any number of parameter and any datatype in Java

我想创建一个方法,它可以是任何具有任意数量参数和任意数据类型的方法。

例如。我想动态调用以下所有方法 void method1(int x, int y) void method2(int x, String y) void method3(Float x, Long y, String z)


我正在使用反射来这样做。现在我坚持在调用这个动态方法期间如何将参数传递给这些方法。 我做了多远....

    MyClass myClass = new MyClass();
    Class<?> c = myclass.getClass();
    Method[] m = c.getMethods();
    int i = 0;
    Object [] obj;   // obj contains values to be passed
    for(Method method : m)
    {
        if("methodX".equals(method.getName()))
        {
            break;
        }
        i++;
    }
    Method myMethod = m[i];
    myMethod.invoke(myClass, obj); //this is not working

如何调用 myMethod?

调用方法时出现错误 "incorrect number of parameters"

尝试 myMethod.invoke(subject, obj)subject 作为您要调用该方法的实例。