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

使用java反射和参数列表调用方法

尚安平
2023-03-14

我目前试图通过反射执行一个方法,但方法参数只是一个列表。

List<Object> params = List.of("param1", "param2", 3, "param4");
Method method = getMethod(); //returns the method
AppInstance instance = new AppInstance();
method.invoke(instance, params);

该方法如下所示:

public void myMethod(String param1, String param2, int param3, String param4){
    //some code
}

但Java对待他们就像

public void myMethod(List<Object> params){
    //some code
}

问题是参数的长度不同,该方法可以有任意数量的参数。

有没有办法解决这个问题?

共有1个答案

赵正雅
2023-03-14

试试这个

Object[] params = new Object[]{"param1", "param2", 3, "param4"};
Method method = getMethod();
AppInstance instance = new AppInstance();
method.invoke(instance, params);
 类似资料:
  • 我在MatrixOperation类中定义了这个方法: 我需要使用反射调用这个方法 我尝试了这种方法,但我得到了一个: 如何做到这一点?

  • 问题内容: 我需要使用反射调用类的setter方法,并且代码如下: 的是一个以及设置器方法如下: 运行此代码时,将引发A ,但是将setter方法参数类型更改为from时,将执行正常。有没有一种方法可以将setter方法的参数保持为超级类型,并且在从类中获取方法时仍无需手动指定参数的类型即可使用反射? 问题答案: 与其他答案相反,有一个非常简单的解决方案。请参阅。它为您提供了一种执行任意反射代码的

  • 大家好,我正在使用Java反射来调用方法,并将参数传递给这些方法。下面是示例代码 用于调用方法的一段代码 其中test=“method1”/“method2”/“method3” obj是基类的对象 上面的代码抛出的是NOSuchmethodException

  • 问题内容: 我想调用静态的方法。我得到了类型的对象,但是我无法创建该类的实例,也无法调用该方法。 问题答案: 如果方法是私有使用而不是。并调用方法对象。

  • 问题内容: 我有一个名为choiceDialog(String s,int i)的静态方法,在该方法中,我想根据提供给choiceDialog的参数在同一类(Dialogs.class)中调用另一个方法。s是所需方法的名称,而i是单个参数。 我已经尝试了许多教程,并花了几个小时阅读有关该主题的内容,但是我似乎无法确切地知道我需要做什么。 有任何想法吗? 谢谢! 问题答案: 为什么要使用在Strin

  • 我用java反射写了下面的代码。在这段代码中,我调用了有参数的方法1(),代码运行时没有错误。没关系。但是我如何调用没有参数的方法2()和方法3()呢?如何在java反射中调用没有参数的方法?Java支持这样的功能吗?