...しかし、Javaコアディストリビューションの一部であるクラスには、JDKのいくつかのリリース後もまだ問題があるとは信じがたいです。
太陽を守るために、彼らは岩と固い場所の間に挟まれています:
これらの問題を修正すれば、現在のAPIとその理想的とは言えない動作に依存する何万ものレガシーアプリケーションを間違いなく壊してしまうでしょう。もし彼らがそうするなら、彼らの有料の顧客ベースからのフォールアウトは莫大なものになるでしょう。そして、より多くの企業が古いJDKリリースを使用して立ち往生するでしょう。
彼らが問題を解決しない場合、彼らはすべての問題が修正されるべきであると考える純粋主義者から無限のフレークを受け取り、互換性を酷評します。
少なくともHTTPクライアントAPIを必要とする人々は、より良い代替手段を持っています...彼らがそれを使用したいのであれば。
これが、@deprecatedが発明された理由です。
理論的には、はい...
ただし、実際には、非推奨は、コードを変更する 必要があるというプログラマー(さらに重要なことにマネージャー)への強力なシグナルとしてOracleによって使用されます。
ここではそれは保証されません。具体的な問題を見てみましょう。
「HttpURLConnection
Cookieを処理できません」は非推奨の理由ではありません。すでにアプリケーションを構築している人は、すでにHttpURLConnection
この問題に対処しているでしょう。彼らにとっては、別のHTTPクライアントクラスに変更する必要はありません。
「HttpURLConnection
キープアライブをサポートしていません」も非推奨の理由ではありません。ほとんどのアプリケーションはキープアライブを必要としません。
等々。
非推奨は鈍器であり、Sun / Oracleの哲学は、APIを安全に使用することが難しい場合にのみ使用する必要があるというものです。つまり、開発者がコードのやり直しなどに時間を費やす強力なビジネスケースがある場合です。
しかし、私の言葉だけを信じてはいけません。Sun/Oracleがメソッドとクラスを非推奨にした場合を見てください。歴史的な例外があっても、明確なパターンがあります。