私は、現在取り組んでいる実装について混乱しています。私が思うのです。この方法は、今私はContentBuilderとするResponseHandlerのために使用されるクラスのカップルを記述する必要がGenericsを使用してクラスを実装する
<I, O, T> T post(String url, I data, ContentBuilder<I, HttpEntity> contentBuilder, ResponseHandler<? extends T> responseHandler);
呼び出します。通知されるものは返品タイプTです。
は、私は私の応答ハンドラーがResponseHandler <WSResponse> rh = new MyWSResponse();
このポストメソッドを呼び出している方法のように見えることは、このシグネチャを持つ抽象クラスWSResponse
を書いた後、MyWSResponse
それを拡張
public interface GPCl{
public <T> T callPost (String data)
}
...
public <T> T callPost(String data){
HttpWebServiceClient client = getHttpWSClient();
ContentBuilder<String, HttpEntity> contentBuilder = new MyXMLBuilder();
ResponseHandler<WSResponse> rh= new MyWSResponse();
WSResponse wsResponse = client.post("", data, contentBuilder, rh);
return (T)wsResponse;
}
今私はこのメソッドの返信で混乱しています。それはTまたはそれ以外のものに残りますか?私がTからWSResponsに変更すると、私はメソッドcallPost
を実装していないというエラーが出ます。
方法callPost
はPS
GPClient cl = new GPClient(myhttpParams);
cl.callPost(d)
と呼ばれている: - <T> T method(things that don't mention T)
- これは私がジェネリックこのタイプの
callPost(..)メソッドはどこから来ていますか? – AndrewC
私の編集を参照してください... –