如果我执行以下操作,
final class FooButton extends JButton{
FooButton(){
super("Foo");
addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// do stuff
}
});
}
}
我要让
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
。