2012-11-04 29 views
4

我是Java新手。我試圖查看這個語法,但找不到它。你能指出這是什麼嗎?關於奇怪ActionListener的Java語法

class actions{ 
    ... 
    public ActionListener WHATISTHIS = new ActionListener() { 
     public void actionPerformed (ActionEvent event) { 
     String action = event.getActionCommand(); 
     show_error ("Key unimplemented: " + action + ": " 
        + keys.valueOf (action).get_html()); 
     refresh (action); 
     } 
    }; 
    ... 

WHATIS​​THIS是一個ActionListener類型的對象嗎?和新的東西{..}新的一堆代碼的對象?我很困惑。通常我看到:

[MODIFIER] [TYPE] obj = new [TYPE](); 

但在上述情況下,它是:

[MODIFIER] [TYPE] obj = new [TYPE](){...}; 
+1

奇怪嗎?它看起來像往常一樣。 – Lion

回答

4

這種類型的類被稱爲anonymous class

它聲明和實例化實現ActionListener類。

+0

+1爲簡單和乾淨的答案:) – javatarz

2
public ActionListener WHATISTHIS = new ActionListener() 

is Anonymous Inner class in java。 它正在實例化一個實現ActionListener的類。匿名內部類別沒有任何名稱。 請看看它here