我正在按照这篇文章中的指示为 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>();
这到底是什么意思?
编辑:
感谢您的快速回复。
从理论上的回答中,我刚刚找到了“实际解决方案”:NameValuePair 是一个接口,因此它的格式不能与它一起使用,并且需要一个实现。
因此,解决方案是用一个BasicNameValuePair替换NameValuePair,实现第一个。
但是,我仍然觉得这个“扩展”有点令人困惑。