当前位置: 首页 > 知识库问答 >
问题:

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

龙景澄
2023-03-14

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

为。我想动态调用以下所有方法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?

在调用方法时,我收到错误“参数的数目不正确”

共有1个答案

慕佑运
2023-03-14

尝试mymethod.invoke(subject,obj)subject是要对其调用方法的实例。

 类似资料:
  • 当前我的类型定义为: 我需要这样的东西: 但第二个不被接受。

  • 问题内容: 对于一个简单的问题,我似乎找不到所需的答案:如何将任何数字四舍五入到最接近的数字? 例如,无论何时数字为0.2、0.7、0.2222、0.4324、0.99999,我都希望结果为1。 到目前为止,我有 不过,它似乎并没有完成任务。 问题答案: 是正确的调用函数。我猜是一个,将执行整数运算。试试吧。 输出: 看到http://ideone.com/yhT0l

  • 问题 你想构造一个可接受任意数量参数的函数。 解决方案 为了能让一个函数接受任意数量的位置参数,可以使用一个*参数。例如: def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1, 2) # 1.5 avg(1, 2, 3, 4) # 2.5 在这个例子中,rest是由所

  • 问题内容: 我正在编写一个函数,可以求解任意数量的联立方程。方程的数量由函数的参数之一设置,每个方程由多个符号构成- 与方程数量一样多。这意味着我不能简单地对方程式甚至是将方程式组合在一起所需的符号进行硬编码。该函数需要能够处理任意数量的方程式。因此,我的问题是,如何生成符号列表? 我有一个可能的解决方案,但是我的直觉告诉我这不会很有效。如果有更好的方法,请告诉我。 我是SymPy的新手,现在仍然