构造函数调用错误信息

Constructor call error message

知道为什么我可能会为此 class 看到以下消息吗?

package org.swx.nursing.tools.sqlfinder.gui;

import javax.swing.JPanel;
import java.awt.event.ActionListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public final class GuiTemplateImpl  extends JPanel implements ActionListener {

    public void createAndShowGUI(GuiTemplateCriteria guiCriteria) {
        super(new BorderLayout());


    }
}

留言

Description Resource    Path    Location    Type
Constructor call must be the first statement in a constructor   GuiTemplateImpl.java    /sqlfinder/src/main/java/org/swx/nursing/tools/sqlfinder/gui    line 29 Java Problem

我不确定为什么这行不通。当我删除 super() 时错误消失了,所以这似乎导致了一些问题。

super() 必须存在于 constructor 中,而不是方法。喜欢:

public final class GuiTemplateImpl  extends JPanel implements ActionListener {
    public GuiTemplateImpl(GuiTemplateCriteria guiCriteria) {
        super(new BorderLayout());
    }
}

super 允许您调用基本构造函数或基本方法。目前还不清楚你到底想达到什么目的:

  • 如果您尝试创建构造函数,则其名称必须与类型名称匹配。这是唯一可以使用 super(...) 调用基本构造函数的地方,并且正如错误消息所说,它必须是第一条语句:

代码:

public GuiTemplateImpl(GuiTemplateCriteria guiCriteria) {
    super(new BorderLayout());
}
  • 如果您尝试创建将调用基本实现的方法:

代码(根据参数不匹配可能不是您要查找的代码):

public GuiTemplateImpl(GuiTemplateCriteria guiCriteria) {
    super.GuiTemplateImpl(new BorderLayout());
}