1. ホーム
  2. java

[解決済み] Javaはコンストラクタでこれをリークする【重複】。

2022-02-08 01:33:46

質問

なぜ IDE はコンストラクタでこれをリークすると文句を言うのですか?私はいつも、それは単に悪い習慣だと思い込んでいました。しかし、なぜそれが悪いことなのか、実はわかっていません。

解決方法は?

が漏れている。 this の参照は コンストラクタ (コントローラではない) は、特にマルチスレッド環境では危険です。これは、コンストラクタの呼び出しが終了するまで、オブジェクトが完全に構築されないからです。リーク this このため、コンストラクタから外部にアクセスすると、まだ完全に構築されていないオブジェクトにアクセスすることになります。このことは、シングルスレッド・プログラムでは必ずしも問題にならないかもしれません(可能性はありますが、この場合、問題はより明らかになります)。しかし、もし this が他のスレッドに漏れると、そのスレッドはオブジェクトの構築が完了する前に実際に何かをしようとすることができ、微妙で見つけにくいバグにつながるのです。