gpt4 book ai didi

java - 反射代码中的 IllegalArgumentException

转载 作者:行者123 更新时间:2023-12-01 12:56:52 24 4
gpt4 key购买 nike

在我的程序中,我尝试使用以下代码通过反射调用方法:

private void invokeMethod(Component sender, MouseEvent event)
{
try
{
System.out.println(name);
Method method = frame.getClass().getMethod("onButton1Clicked", Component.class, MouseEvent.class);
method.invoke(sender, event);
}
catch (Exception e)
{
e.printStackTrace();
}
}

public void onButton1Clicked(Component sender, MouseEvent e)
{
System.out.println("Test");
}

但是如果我运行这段代码,就会出现这个异常:

java.lang.IllegalArgumentException: object is not an instance of declaring class

有什么想法我的错误在哪里吗?

最佳答案

如果相关方法是 Frame 类的一部分,则需要在 Frame 实例上调用它。

快速浏览the JavaDoc告诉您第一个参数应该是调用该方法的实例。

试试这个:

method.invoke(frame, sender, event);

关于java - 反射代码中的 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23812356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com