Я следую указаниям на этой записи, чтобы создать параметризованный URI для Http GetMethod (http://some.domain/path?param1=value1¶m2=value2), и я столкнулся с новой проблемой.
У меня есть этот код:
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>();
Что именно это значит?
EDIT:
Спасибо за ваши быстрые ответы.
Часть теоретических откликов, я только что нашел «практическое решение»:
NameValuePair является интерфейсом, поэтому его формат не работает с ним и требует реализации.
Поэтому решение состоит в том, чтобы заменить NameValuePair на BasicNameValuePair, которая реализует первый.
Тем не менее, я все еще нахожу это "расширяет" немного запутанным.