オブジェクトへの参照を保存せずにJavaコードで作成されたオブジェクトを見てきました。たとえば、Eclipseプラグインで、次のように作成されたSWTシェルを見ました。
new Shell();
この新しいShellオブジェクトは変数に格納されませんが、ウィンドウが破棄されるまで参照されたままになります。ウィンドウが閉じられると、デフォルトで[信じる?]が発生します。
参照を保存せずにこのようなオブジェクトを作成するのは悪い習慣ですか?または、ライブラリの設計が不十分でしたか?参照の必要はないが、オブジェクトの「副作用」のみが必要な場合はどうなりますか?とにかく参照を保存する必要がありますか?
更新:
確かに、私の上記の例は貧弱です。このように作成されたUI要素を見てきましたが、Shellインスタンスでopenメソッドを呼び出す必要があるため、このようなSWTシェルの作成はおそらく無意味です。Java並行性チュートリアルの次のような、aixが提供するより良い例があります。
(new HelloThread()).start();
このプラクティスは多くのコンテキストで見られるため、疑問が残ります。それは良い習慣ですか?
Shell.createTopLevelShell()
このような場合にコンストラクターを使用するよりも、静的メソッドを使用する方が良いでしょう。しかし、機能的にはほとんど違いはありません。)
dispose()
dでなければなりません: ルール1:作成した場合は、破棄します。 eclipse.org/articles/swt-design-2/swt-design-2.html