Замена устаревшего конструктора URL (контекст URL, спецификация строки), который также работает со старыми версиями JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Замена устаревшего конструктора URL (контекст URL, спецификация строки), который также работает со старыми версиями Java

Сообщение Anonymous »

Я думал, что эквивалентом нового URL(контекст URL, спецификация строки), который устарел в Java 21, будет context.toURI().resolve(спецификация строки).toURL(). Но те же результаты он дает только в Java 21. Если я использую более старую версию Java, например 17 или 11, я получаю другие результаты. Например, этот код
URL context = new URI("http://example.com").toURL();
for (String spec : Arrays.asList("foo", "/foo", "http://foo.bar")) {
System.out.println(new URL(context, spec));
System.out.println(context.toURI().resolve(spec));
}

выдает этот результат в старых версиях Java
http://example.com/foo
http://example.comfoo
http://example.com/foo
http://example.com/foo
http://foo.bar
http://foo.bar


Подробнее здесь: https://stackoverflow.com/questions/790 ... or-that-al

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