在 java 中始终将参数传递给事件处理程序是否重要?



嗯,据我所知,作为参数传递给 Java 中的事件处理程序函数的事件对象保存有关事件的其他信息。因此,这意味着在我们需要之前,有时传递该论点可能并不重要。

但是,事实并非如此...因为如果缺少对象参数,它会引发错误。例如,这将引发错误。

public void actionPerformed() {     //since the event object parameter is missing
        button.setText("Clicked");
    }

为什么会这样?有时传递参数只是浪费,那么为什么 Swing/AWT Java API 中没有允许完全不包含参数的事件处理程序的方法呢?那真的会让人欣慰很多。 不?

是的,这很重要,参数构成了接口所述的合约的一部分。

interface描述了对实现的期望。

public interface ActionListener {
    public void actionPerformed(ActionEvent evt);
}

为了使一个类能够调用ActionListener的任何实现,它不仅必须提供方法的名称,而且提供它(interface)列出的任何参数。

public void actionPerformed() { 
    button.setText("Clicked");
}

不符合合同要求ActionListener,因此不能调用。 事实上,假设你类implements ActionListener,除非你提供表单方法签名(public void actionPerformed(ActionEvent evt))的实现,否则这不会编译。

如果不想使用 evt 对象,请忽略它。

相关内容

  • 没有找到相关文章

最新更新