Guava 10+では、GoogleはFiles.deleteDirectoryContents()を非難しました。 JavaDocとはGuavaでFiles.deleteDirectoryContents()が使用されないのはなぜですか?
廃止されました。この方法では、シンボリックリンクの検出が不十分で、競合が発生するという問題があります。この機能は、 がrm -rfやdel/sなどのオペレーティングシステムコマンドにシェルリングすることによってのみ適切にサポートされます。 この方法は、グアバにグアバから削除される予定です 11.0
を解放し、私は競合状態がある理由について混乱しています。私はこの方法が実際に有用であり、オペレーティングシステムに貧弱な解決策を見つけることができると思います。著者がなぜこの決定をしたのかを共有することはできますか?
もっと明確にするために、競合状態の問題は大きなバグではないと思います。 'ArrayList'のような多くのlibsはスレッドセーフではなく、競合条件を持っていません。 'File.remove'でも同じ問題があります。しかし、それらはすべて文書化されています。だから私は、ドキュメンテーションがなぜそれが非難されたのかを選択した理由について既に述べていることに加えて、答えを聞くことを望んでいた。 –
この競合状態と一般的な非スレッドセーフなクラスの違いは、そのスレッドに対する「修正」がないことです。これに対して、ロックオブジェクトで同期することで、スレッドセーフではないクラスによるJavaスレッド安全性の問題を解決できます。単に人々が期待していることをすることができない方法は悪い方法です。 –
これは良い点です。ありがとう。 –