假设我需要一个特定的应用程序范围的actionListener。例如:
public class TestAnonymousInnerClass {
private ActionListener closeAction = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
...
}
此代码编译并正常运行,但是我可以说我使用匿名内部类来实例化此closeAction
字段吗?
UPD: 我正在读这本书 SG Ganesh,Tushar Sharma - Oracle认证专家Java SE 7程序员考试1Z0-804和1Z0-805(Java专家的声音) - 2013 这里有一个令人困惑的插图:{ {0}}如下所示,不可能有匿名和“非本地”类。 但我的班级似乎是那种,因为它不是在方法的背景下,而且仍然是匿名的。
答案 0 :(得分:3)
是的,您已经创建了一个ActionListener
接口的匿名内部实现类。并实例化它并分配给closeAction
变量
简而言之,我们可以说匿名类是一个根本没有名字的内部类。并且它的实例是在创建时创建的。查看here了解详情。