applet中存在构造函数会引发异常

Ani*_*han 3 java applet constructor japplet

我正在运行下面的applet.在其中,当我添加构造函数(甚至是空)时,applet会抛出一个运行时异常:

MainFrame.class can't be instantiated, java.lang.InstantiationException 
Run Code Online (Sandbox Code Playgroud)

如果我删除了构造函数,则抛出没有异常.我不能在applet中有一个构造函数吗?

public class MainFrame extends JApplet implements  WindowListener, ActionListener {
    public void init()
    {       
        System.out.println("Applet Step1");
        String[] args = null;
        createAndShowGUI(args);      
    }
    private static void createAndShowGUI(String[] args) { /*code*/ }
    public MainFrame(final String[] args) {}
}
Run Code Online (Sandbox Code Playgroud)

Tri*_*Man 6

您还需要添加默认构造函数...

public MainFrame() {}
Run Code Online (Sandbox Code Playgroud)

  • 因为只要向类中添加构造函数,就会丢失默认构造函数.默认构造函数由java UNLESS自动创建,存在另一个构造函数. (2认同)
  • 他得到错误的原因是因为浏览器试图通过基本上调用"new MainFrame();"来实例化他的applet.但是这个构造函数不再存在,这就是他获得InstantiationException的原因. (2认同)