I/O 中級

非推奨のURLコンストラクターからURIへ

リソース識別子を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年3月)以降、非推奨

URLの解析と等価性にはプロトコルハンドラーに起因する予想外の動作があるため、URLコンストラクターはJDK 20で非推奨になりました。解析、構成、比較、正規化には、不変な表現であるURIが推奨されます。URLを要求するAPIでのみ変換してください。