0
Я хочу, чтобы добавить функциональность HttpsURLConnection поэтому я попытался продлить этот класс следующим образом:Расширение HttpsURLConnection
public abstract class HTTPClient extends HttpsURLConnection
Когда я пытаюсь использовать этот класс:
HTTPClient con = (HTTPClient) url.openConnection();
я получаю следующее ошибка:
Exception in thread "main" java.lang.ClassCastException: sun.net.www.protocol.https.HttpsURLConnectionImpl cannot be cast to HTTPClient
В чем проблема и как ее можно исправить?
Спасибо.
Могли бы вы вставить ту часть, где вы определяете '' url'' переменную? – Matt
Почему вы считаете, что 'url.openConnection()' ничего не знает о вашем подклассе 'HttpsURLConnection'? Он возвращает реализацию 'URLConnection', которая находится в другой ветке иерархии наследования и никоим образом не связана с вашим подклассом. Для этого для работы 'URL' необходимо настроить на фабрике для создания соединений, и это не является частью API. –
HttpURLConnection относится к той же иерархии, что и URLConnection - подразумевает, что пользователь должен был знать, что система будет бросать реализацию, это абсурдно – gpasch