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