Java:创建实现接口(interface)的类实例的简写形式

标签 java new-operator implements

我想使用 new 运算符创建一个 JPanel 实例,该实例实现 ActionListener 并直接重写 actionPerformed 方法。

我试过了

JPanel panel = new JPanel implements ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ae) {
        // ...
    }
};

但是由于语法错误,这不起作用。

当然,我可以定义一个像 JPanelWithActionListener 这样的新类,并使用 new 调用这个类,但是有没有办法只用一行来完成它?

最佳答案

这在 Java 中是不可能的 - Java 中没有匿名类型。

您的代码 new JPanel Implements ActionListener() {/*...*/}; 与此代码等效。

class JPanelWithActionListener extends JPanel implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
    }
}
JPanel panle = new JPanelWithActionListener();

您想要创建一个新类型 JPanelWithActionListener 而不定义类(因此,该类是匿名的)。

关于Java:创建实现接口(interface)的类实例的简写形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48379777/

相关文章:

c++ - new 和 delete 在 C++14 中仍然有用吗?

Java 重写抽象接口(interface)方法

java - 使用实现接口(interface)的抽象类 (Java)

java - 请求堆空间 OutOfMemoryError : available vs.

java - 通过触摸事件调整图标大小

java - 当每个要排名的实体都是一组文档时,可以使用 Lucene 吗?

c++ - 在c++中正确使用delete

java - 如何从 Java 中的字符串保存图像文件?

javascript - 新建时使用可变参数

vb.net - 使用重载成员 vb.net 实现继承接口(interface)