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

用getMethod从另一个类调用方法会出现错误

南宫博简
2023-03-14

因此,正如标题所描述的那样,我需要帮助从一个类调用一个方法到另一个类。因此,为了进一步解释:我将类存储hashset中。现在我试图访问一个位于hashset中选择的类中的方法,但它给了我一个错误:

java.lang.IllegalArgumentException:object不是在sun.reflect.nativeMethodAccessorImpl.Invoke0(本机方法)在sun.reflect.nativeMethodAccessorImpl.Invoke(未知源)在java.lang.reflect.Method.Invoke(未知源)在sun.reflect.DelegatingMethodAccessorImpl.Invoke(未知源)声明类
的实例。

代码

 Class<Task> neededClass = taskHandler.getTaskClass("NodeMovementTask");
                try {
                    neededClass.getMethod("addToQueue", Timeline.class, int.class).invoke(timeline, cycleCount);
                } catch (IllegalAccessException | IllegalArgumentException
                        | InvocationTargetException | NoSuchMethodException
                        | SecurityException e) {
                    e.printStackTrace();
                }

这就是getTaskClass方法

public Class<Task> getTaskClass(String classToSearch) {
    Class<Task> returningClass = null;
    for(Class<Task> foundClass : tasks) {
        if(foundClass.getName().equalsIgnoreCase("packages." + classToSearch)) {
            System.out.println("Found!");
            return returningClass = foundClass;
        }
    }
    return returningClass;
}

共有1个答案

史英飙
2023-03-14

invoke方法的第一个参数是要在其上调用该方法的对象实例。如果该方法是静态的,则可以简单地提供null作为第一个参数。否则,您需要提供实际要在其上调用方法的实例:

neededClass.getMethod("addToQueue", Timeline.class, int.class)
     .invoke(instance, timeline, cycleCount);
             ^^^^^^^^
 类似资料:
  • 问题内容: 在Python中,有没有一种方法可以从另一个类中调用一个类方法?我正在尝试在Python中旋转自己的MVC框架,但无法弄清楚如何从另一个类的一个类调用方法。 这是我想发生的事情: 我正在从PHP慢慢进入Python,因此我正在寻找与PHP等效的Python 。 问题答案: 更新:刚刚在您的帖子中看到了对它的引用。那不一样。用于获取函数对象,然后使用您的参数调用它 现在是一个实际的函数对

  • 日志输出: 线程“Thread-13”java.lang.noClassDeffounder中的异常错误:org/springframework/boot/springapplication at hello.application.main(application.java:11)at org.clinton.openfire.plugin.fetchnewsplugin$1.run(fetch

  • 问题内容: 我正在研究一个问题,但由于刚开始学习Java而感到非常困惑。我可以理解的任何帮助都会很棒。我必须编写一个具有两个类的程序。主类将从文件中读取内容,并使用第二类来查找文件中相同单词被重复的次数,然后将它们添加到包含单词和单词重复次数的数组中。我可以阅读文件部分。我只是似乎不知道如何从第二个类调用方法以将单词添加到数组并增加计数器。到目前为止,这是我的代码,如果您运行它,您将看到多少错误会

  • 问题内容: 我知道这个问题是重复的,但是我在Internet上找不到答案。 我想从另一个类调用一个方法。 我有Class1和Class2。 在第2类中,我具有该方法: 我想从Class1调用该方法。 感谢您的任何答复。 - - 编辑 - - -— LogCat– 问题答案: 您应该使用以下代码: 如果您不想创建一个新的实例来调用该方法,则可以将方法标为十进制,然后只需调用即可。

  • Java,我们可以从另一个类调用main()方法吗?例如,ClassA应该在命令行上运行,因为它定义了main(String[]args)方法。 我想把这个叫做ClassA,在ClassB里面。是否初始化类的新对象,如 或者是否有一种方法可以在ClassB中传递ClassA的命令行选项。 谢啦

  • 我正在开发一个程序,在这个程序中,我必须调用一个提示用户从另一个类输入数据的方法。这个程序应该打印客户的姓名、年龄、地址和性别。然而,我在调用一个输入每个客户信息的方法时遇到了问题。 此外,我还必须创建一种方法,将客户的年龄按升序排序。因此,该程序根据年龄从(最年轻的客户)到(最老的客户)的顺序打印出所有信息。我不知道如何创建一种只对客户年龄进行排序而不对姓名、地址和性别进行排序的方法。如果您有任