У меня есть простая проблема - у меня есть несколько потоков, которые выполняют добавления в файл, основанный на имени файла, которое пользователь может выбрать. А именно - 2 разных экземпляра строки приведут к двум различным случаям пути , которые не равны, согласно path.equals () , но указывают на один и тот же файл. Я сам проверил это, и кажется, что они правы. Например, рассмотрим этот пример, который я запустил на своей машине Windows 11. < /P>
Код: Выделить всё
final Path a = Path.of("abc.java"); //find abc.java in the current directory
final Path b = Path.of("./abc.java"); //go to current directory, then find abc.java
System.out.println(a.equals(b)); //false, but they are the same file!
(и, чтобы быть ясным, причина, по которой я забочусь о path.equals () , потому что это позволит ее быть уникальной в карте или набор , а затем я могу использовать эти контейнеры, чтобы получить один и тот же экземпляр всегда. После всех, что не будет синхронизировать (некоторые обороты) . B и не на A.Equals (b) . Не собираюсь разрезать его.>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... the-same-f