我按照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>();
这到底是什么意思?
编辑:
感谢您的快速答复。
从理论上讲,我只是找到了“实际解决方案”:
NameValuePair是一个接口,因此它的格式无法使用,并且需要实现。
因此,解决方案是用实现第一个的BasicNameValuePair替换NameValuePair。
但是,我仍然发现此“扩展”有点令人困惑。
最佳答案
Xxx<? extends Yyy>
表示Xxx
具有通用类型参数,该参数可以是实现接口Yyy
(如果Yyy
是接口)或扩展类Yyy
(如果Yyy
是类)时所需的任何类型。 。