簡體   English   中英

Java:用於創建實現接口的類的實例的簡寫形式

[英]Java: Short form to create an instance of a class that implements an interface

我想使用new運算符創建JPanel的實例,該實例實現ActionListener並直接覆蓋actionPerformed方法。

我試過了

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

但這由於語法錯誤而無效。

當然,我可以只定義一個新類,例如JPanelWithActionListener並用new調用它,但是有什么方法可以只用一行完成呢?

在Java中這是不可能的-Java中沒有匿名類型。

您的new JPanel implements ActionListener() { /*...*/ };代碼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類型而不定義一個類(因此,該類是匿名的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM