このメソッドには明示的にオブジェクトで finalize
メソッドの呼び出しがあります。
ファイナライザは Java 仮想マシンによって1度だけ実行されることになっているので、これは間違った考えです。
参照によってつながった複数のオブジェクトがファイナライズ可能になると、Java 仮想マシンはすべてのオブジェクトの finalize
メソッドを呼び出します。
おそらく、異なるスレッドで同時にです。
したがって、クラス X の finalize
メソッドの中から X によって参照されているオブジェクトの finalize
メソッドを呼び出すのは、とりわけ間違った考えです。
なぜなら、オブジェクトがすでに別のスレッドによってファイナライズされているかもしれないからです。