相关疑难解决方法(0)

如何在构造函数结束之前引用/处理"this"?

我想到这个问题的具体用法如下,但它更加普遍.

我有一个自定义JFrame类,也可以作为ActionListener其组件.所以我的构造函数看起来像下面这样:

private JButton myButton;

public MyCustomFrame() {
    super();
    myButton.addActionListener(this);
    // ... more stuff
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这在幕后实际上是如何运作的?如果构造函数是"创建"引用的对象this,那么this在构造函数返回之前我该如何使用?代码编译和工作完全正常(据我所知),所以对象必须已经"存在"在某种意义上,但我担心这可能会导致无法预料的问题.传递一个"部分构造"的引用是否存在任何危险addActionListener()(或者只是对它执行任何逻辑)?或者是否有一些让我安全的幕后魔术?

例如,那些没有默认值但必须由构造函数提供的东西呢?如果我已private final String SOME_VALUE;声明,我理解这应该默认为null,但是在构造函数中为常量提供值之前,该对象不应该完全形成.那么参考,尽管是最终的,可能会有变化的价值?

java constructor this

6
推荐指数
1
解决办法
144
查看次数

标签 统计

constructor ×1

java ×1

this ×1