HttpClient httpClient = new DefaultHttpClient(); 为什么报无法转换错误?

仰望星空_Star 2015-11-21 03:45:09
如题:错误详情
Type mismatch: cannot convert from DefaultHttpClient to HttpClient
为什么HttpClient http = new HttpClient(); 可以?
HttpClient不是接口吗?
它们两个是什么关系?
刚刚接触这个不太了解,望大家指点,谢谢
...全文
816 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
httpClient的包导错了,你看下是不是这个,import org.apache.http.client.HttpClient;不是就说明你的包导错了
小灰狼 2015-11-26
  • 打赏
  • 举报
回复
引用 楼主 xuxiaoyinliu 的回复:
如题:错误详情 Type mismatch: cannot convert from DefaultHttpClient to HttpClient 为什么HttpClient http = new HttpClient(); 可以? HttpClient不是接口吗? 它们两个是什么关系? 刚刚接触这个不太了解,望大家指点,谢谢
如果 HttpClient 是个接口,好么 HttpClient http = new HttpClient(); 就绝对不可以,因为接口是不能 new 的 DefaultHttpClient 不晓得这个类是从哪里来的,但是既然不可以转换,说明它不是 HttpClient 的子类(或者说没有实现 HttpClient 接口,如果 HttpClient 是接口类型的话) 类和子类,接口你可以参考现实中的实例 比如,苹果 extends 水果,水果 extends 食物,小笼包 extends 包子,包子 extends 食物 所以可以把“苹果”当作“水果”,也可以把“苹果”当作“食物”,可以说“小笼包”是“包子”,也可以把“小笼包”当作“食物” 但不能说,“苹果”是“包子” 所以,在一棵继承树上: 1、从父类向子类作强制类型转换,是“可能”的,但有可能会失败,比如把“食物”转型为“包子”,存在这种可能,但可能失败,因为这个食物可能是一个“苹果” 2、从子类向父类转型是一定会成功的,因此这种转型不需要作强制类型转换,就象“苹果”、“小笼包”一定是“食物”,这时只要直接赋值即可 3、从分支中的兄弟之间进行转型,是一定不会成功的,就象一个“小笼包”永远不可能是一个“水果”,因此对这种转型,编译器会直接报错。
仰望星空_Star 2015-11-25
  • 打赏
  • 举报
回复
引用 1 楼 zhouren1314 的回复:
DefaultHttpClient能不能写一下包名,没见过这个类。
org.apache.http.impl.client.DefaultHttpClient
CommCsdn 2015-11-25
  • 打赏
  • 举报
回复
sorry ,上面说错了。没有仔细看你说的。。
CommCsdn 2015-11-25
  • 打赏
  • 举报
回复
是不是你的httpclient的版本问题?
乔不思 2015-11-24
  • 打赏
  • 举报
回复
DefaultHttpClient能不能写一下包名,没见过这个类。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧