0

Java で finalize() メソッドを実行するかどうかを論理的に制御できますか?
条件付きメソッドから返された結果に応じて finalize() メソッドを実行したい。

4

5 に答える 5

2

Java で finalize() メソッドを実行するかどうかを論理的に制御できますか?

答えはできません。

条件付きメソッドから返された結果に応じて finalize() メソッドを実行したい。

ファイナライズで条件またはフラグ チェックを使用して、クリーンアップを実行するかどうかを決定できます。

于 2013-10-04T07:35:43.170 に答える
0

本当にカスタム タスクを実行したい場合は、finalize メソッドをオーバーライドできます。しかし、それに頼らないのが最善です。

于 2013-10-04T07:40:41.307 に答える
0

いいえ、あなたがすることはできません。クリーンアップの開始Asynchronously時に呼び出します。GC

同じドキュメントを参照してください。

オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクタによって呼び出されます。サブクラスは finalize メソッドをオーバーライドして、システム リソースを破棄したり、その他のクリーンアップを実行したりします。

しかし、ファイナライズでクリーンアップ(またはいくつかのロジック)を行うことは、私にはほとんど設計上の欠陥のようです。

于 2013-10-04T07:35:35.620 に答える