【发布时间】:2011-11-07 12:18:14
【问题描述】:
我正在按照this 帖子上的指示为 Http GetMethod (http://some.domain/path?param1=value1¶m2=value2) 创建参数化 URI,但遇到了一个新问题。
我有这个代码:
List<NameValuePair> params = new ArrayList<NameValuePair>();
...
some code which does: params.add(new BasicNameValuePair(paramName, paramValue));
...
String paramString = URLEncodedUtils.format(params, "utf-8");
但是,我的 Eclipse 说 URLEncodeUtils.format 不接受类型List<NameValuePair>,而只接受List<? extends NameValuePair>。
我认为这可能意味着只接受一个子类(但我认为这没有任何意义,因为 NameValuePair 不是抽象的)但我也尝试过这样做,但没有运气:
class NameValuePairExtension extends NameValuePair{}
List<NameValuePairExtension> params = new ArrayList<NameValuePairExtension>();
这到底是什么意思?
编辑:
感谢您的快速回复。
来自理论repsonses的一部分,我刚刚找到了“实际解决方案”: NameValuePair 是一个接口,因此它的格式不能与它一起使用,并且需要一个实现。
因此,解决方案是将NameValuePair替换为BasicNameValuePair,实现第一个。
但是,我仍然觉得这个“扩展”有点令人困惑。
【问题讨论】:
-
我想我们已经在 SO 上回答了许多泛型问题,不是吗? :p
-
如果是这种情况,我很抱歉。我试图搜索帖子,但我什么也没找到。也许是“?”使搜索失败,并且仅针对“扩展”进行搜索会导致许多其他问题
标签: java urlencode http-get http-method getmethod