![](/img/trans.png)
[英]Which is better for multiple actions in a class? Anonymous inner classes or if statements in actionPerformed()?
[英]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.