【初心者】Java質問・相談スレッド111【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0593デフォルトの名無しさん
2008/01/31(木) 14:43:06内部クラス経由の暗黙漏洩、thisキーワードでの明示的漏洩を問わず。
class Foo {
Bar bar;
public Foo() {
bar = new Bar(this);
}
}
みたいな時、new Bar(this)はthis参照を保存するだけで、それを使うことは無い、とわかってれば
安全なんでしょうが、Barのコンストラクタの実装が変わるとFooも危険になる。
Fooの安全性が、Barの実装に依存することになるのが、なんとなく気持ち悪いけど、割り切ればいいものなのかもしれない。
ってのがモヤモヤするところです。
潔癖にするなら、
class Foo {
Bar bar null;
public Foo() {
}
public void initialize() }
bar = new Bar(this);
}
}
みたいな2段階初期化なんでしょうけど。
Swingのソースとか見ると、this漏洩しまくりなんですけどね。
■ このスレッドは過去ログ倉庫に格納されています