在Guava 10+中,Google已弃用Files.deleteDirectoryContents()。 JavaDoc说为什么在Guava中不推荐使用Files.deleteDirectoryContents()?
已弃用。这种方法遇到糟糕的符号链接检测和竞争条件。此功能仅适用于支持操作系统命令(例如rm -rf或del/s)的 。 此方法定于番石榴番石榴除去释放 11.0
我对为什么会出现竞争条件困惑。我认为这种方法实际上很有用,并且发现向操作系统提出一个糟糕的解决方案。作者可以分享为什么做出这个决定吗?
更清晰,我觉得有竞争状态的问题不是主要的错误。许多库,像'ArrayList'不是线程安全的或者有竞争条件。即使'File.remove'也有同样的问题。但他们都记录在案。所以我希望听到一个答案,除了文件已经说了他们为什么选择使其不推荐使用。 –
这种竞争条件和典型的非线程安全类之间的区别在于它没有“修复”。相比之下,您可以通过同步锁对象来解决非线程安全类的Java线程安全问题。一种根本无法做到人们所期望的方法是一种不好的方法。 –
这是一个很好的观点。谢谢。 –