如果我执行以下操作,
final class FooButton extends JButton{ FooButton(){ super("Foo"); addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ // do stuff } }); } }
我要让this引用隐式转义吗?
this
是的,因为在匿名内部类中,您可以这样访问它:
final class FooButton extends JButton { Foo() { super("Foo"); addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { FooButton button = FooButton.this; // ... do something with the button } }); } }
ActionListener原则上,匿名对象的代码可以在对象完全初始化FooButton之前被调用并使用FooButton。
ActionListener
FooButton