I/O Средний

Разбирайте и составляйте идентификаторы ресурсов как значения URI, преобразуя их в URL только при необходимости.

✕ Deprecated URL constructor
URL endpoint =
    new URL("https://example.com/api?q=java");
✓ Java 20+
URI endpointUri =
    URI.create("https://example.com/api?q=java");
URL endpoint = endpointUri.toURL();
Заметили проблему в этом коде? Сообщите нам.
✅

Без устаревшего API

Исключает использование устаревших конструкторов URL.

🧠

Предсказуемая семантика

Сравнение URI не выполняет разрешение, зависящее от сети.

🧩

Удобное составление

URI предназначен для разбора идентификаторов и работы с ними.

Старый подход
Прямое создание URL
Современный подход
Сначала URI, затем URL
Начиная с JDK
20
Сложность
Средний
От устаревших конструкторов URL к URI
Доступно

Конструкторы URL объявлены устаревшими начиная с JDK 20 (март 2023)

Конструкторы URL были объявлены устаревшими в JDK 20, поскольку разбор и проверка равенства URL связаны с неожиданным поведением обработчиков протоколов. URI — предпочтительное неизменяемое представление для разбора, составления, сравнения и нормализации; преобразуйте его только при вызове API, которым требуется URL.