簡體   English   中英

Java - 這些是哪些類型的類; 哪個是匿名內部class?

[英]Java - Which types of classes are these; which is the anonymous inner class?

我讀過幾篇相互矛盾的在線文章。 我認為這將是匿名內部 class 的示例:

button.addActionListener(new ActionListener() {
    public void actionPerfored(ActionEvent e) {
       // do something.
    }
});

但是,我也看到過這個描述為匿名內部 class:

ActionListener myListener = new ActionListener() { 
    public void actionPerformed(ActionEvent event) {
          // do something.
    }
};
button.addActionListener(myListener);

哪個是哪個,為什么? 謝謝!

他們都是。 第二個在被添加為動作偵聽器之前只是分配給一個變量。

這與兩者之間的區別相同

myList.add(new String("myString"));

String s = new String("myString");
myList.add(s);

它與匿名類無關。

兩者都是匿名內部類。 在第二種情況下,您正在存儲對匿名 class 的引用,以便您稍后可以在其上調用一些方法。

正如 Richante 所說,他們都是。

想一想,它們都是未命名的,並且定義在另一個 class 中。

兩者實際上都是匿名內部 class 的示例。在第一個示例中,在將參數傳遞給 addActionListener() 方法時提供了匿名內部 class。 在第二個示例中,創建了對匿名內部 class 的引用。

暫無
暫無

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

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