この投稿の指示に従って、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 はインターフェイスであるため、フォーマットはそれで動作せず、実装が必要です。
したがって、解決策は、NameValuePair を、最初のものを実装する BasicNameValuePair に置き換えることです。
ただし、この「拡張」はまだ少し混乱しています。