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

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

Сообщение Anonymous »

Название вопроса говорит само за себя, но в прошлом запуск 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 ... while-file

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