Почему метод File.exists() в Java 25 возвращает true для пустой строки, а File.exists() в предыдущих версиях Java возвраJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему метод File.exists() в Java 25 возвращает true для пустой строки, а File.exists() в предыдущих версиях Java возвра

Сообщение Anonymous »

Почему метод File.exists() Java 25 возвращает true для пустой строки, тогда как File.exists() в предыдущих версиях Java возвращал false? Раньше вызов File.exists() для пустой строки всегда возвращал false. Однако когда я обновил JRE, на которой работал мой проект, до Java 25, он теперь неожиданно возвращает true.
Другими словами, следующий код выводит противоположные значения при запуске в разных версиях JRE:

Код: Выделить всё

public class Main {
public static void main(String[] args) {
File f = new File("");
System.out.println(f.exists());
}
}
Есть способ переписать рассматриваемый код, чтобы не полагаться на получение логического значения при передаче потенциально пустой строки в File.exists(), но мне было интересно, почему определение этого изменится. Глядя на базовый исходный код, я вижу, что реализация этого метода изменилась с прекращением поддержки SecurityManager, но я все равно ожидаю, что новая реализация сохранит те же выходные данные для тех же входных данных.


Подробнее здесь: https://stackoverflow.com/questions/798 ... g-while-fi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»