我读过几篇相互矛盾的在线文章。我认为这将是匿名内部类的一个例子:
button.addActionListener(new ActionListener() {
public void actionPerfored(ActionEvent e) {
// do something.
}
});
但是,我也看到这被描述为一个匿名的内部类:
ActionListener myListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
// do something.
}
};
button.addActionListener(myListener);
哪个是哪个,为什么?谢谢!
答案 0 :(得分:10)
他们两个都是。第二个只是在被添加为动作侦听器之前被分配给变量。
这与
之间的区别相同myList.add(new String("myString"));
和
String s = new String("myString");
myList.add(s);
它与匿名类无关。
答案 1 :(得分:0)
两者都是匿名的内部类。在第二种情况下,您正在存储对匿名类的引用,以便稍后可以在其上调用某些方法。
答案 2 :(得分:0)
像Richante说的那样,他们都是。
考虑一下,它们都是未命名的,并且在另一个类中定义。
答案 3 :(得分:0)
两者都是匿名内部类的例子。在第一个示例中,在将参数传递给addActionListener()方法时提供匿名内部类。在第二个示例中,创建了对匿名内部类的引用。