Java 扩展HttpsURLConnection
我想向HttpsURLConnection添加功能,因此我尝试像这样扩展此类:Java 扩展HttpsURLConnection,java,httpurlconnection,Java,Httpurlconnection,我想向HttpsURLConnection添加功能,因此我尝试像这样扩展此类: public abstract class HTTPClient extends HttpsURLConnection 当我尝试使用此类时: HTTPClient con = (HTTPClient) url.openConnection(); 我得到以下错误: Exception in thread "main" java.lang.ClassCastException: sun.net.www.protoco
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
这里的问题是什么?如何解决
谢谢。您可以按如下方式进行扩展:
class H extends HttpURLConnection {
URLConnection uc;
public H(URL url) {
super(url);
try { uc=url.openConnection(); } catch(Exception ex) { ex.printStackTrace(); }
}
public boolean usingProxy() { return true; }
public void disconnect() { }
public void connect() { }
}
你能粘贴定义
url
变量的部分吗?为什么你认为url.openConnection()
知道你的HttpsURLConnection
的子类?它返回URLConnection
的一个实现,该实现位于继承层次结构的另一个分支上,并且与您的子类没有任何关系。要想实现这一点,URL
必须可以通过工厂自定义以创建连接,而这不是API的一部分。HttpURLConnection与URLConnection属于同一层次结构-暗示用户应该知道系统将向其抛出实现是荒谬的