带有反射的 NoSuchMethod 异常

NoSuchMethod exception with Reflection

我正在尝试使用反射从 jar 调用 swing 面板 这是代码

public class coolUI extends JPanel{

public coolUI{

   //swing code here ( made by windowbuilder )

 }
}

这是我用来调用它的代码

String className = "plugins.plugin1.coolUI";
Class UI = cl.loadClass(className);         
Method theUI = UI.getMethod("coolUI");
Object a = UI.newInstance();
theUI.invoke(a, null);

我想在这里做的是加载一个罐子,并将罐子里的 UI 附加到一个选项卡窗格中,虽然我可以不加思考地做到这一点,但我不知道该怎么做有了这个。

coolUI.coolUI() 是构造函数,因此 Class.getMethod("coolUI") 抛出 NoSuchMethodException.

要使其成为方法,必须添加 return 类型

public void coolUI() {
    //swing code here ( made by windowbuilder )
}

我认为您正在动态地执行此操作,对吗? 如果是这样,您应该使用 .getConstructor() 而不是 getMethod()。

像这样:

cons = class.getConstructor();