小编典典

“此”参考在构建过程中转义?

java

如果我执行以下操作,

final class FooButton extends JButton{
    FooButton(){
        super("Foo");
        addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e){
                // do stuff
            }
        });
    }
}

我要让this引用隐式转义吗?


阅读 213

收藏
2020-09-28

共1个答案

小编典典

是的,因为在匿名内部类中,您可以这样访问它:

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

2020-09-28