簡體   English   中英

這些花括號做什么?

[英]What do these curly brackets do?

這是由netbeans生成的一段代碼,我對這些括號在調用AbstractListModel之后的行為感到困惑。

    li_reminderslist.setModel(new javax.swing.AbstractListModel() {
        String[] strings = { };
        public int getSize() { return strings.length; }
        public Object getElementAt(int i) { return strings[i]; }
    });

對不起初學者的問題。 我試過尋找一個教程,但找不到一個。

它創建了一個匿名內部類

基本上,您正在創建一個新的AbstractListModel實例,但重寫了一些事情。 由於你只是在這一個地方使用它,所以用自己的名字創建一個完整的單獨的類聲明是沒有意義的 - 因此是“匿名”部分。

另外,由於Java 8 Lambda表達式提供與匿名內部類相似的功能,但它們專門用於僅使用一個抽象/未實現的方法實例化類/接口。

這是匿名內部類的實現。

例如,您可以創建新的Runnable

new Runnable() {public void run() { }});

ActionListener

new ActionListener(){public void actionPerformed(ActionEvent e}{}};

以相同的方式。

暫無
暫無

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

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