[英]Implementing classes using Generics
我對正在執行的實現感到困惑。 我想調用的這個方法
<I, O, T> T post(String url, I data, ContentBuilder<I, HttpEntity> contentBuilder, ResponseHandler<? extends T> responseHandler);
現在,我必須編寫幾個將用於ContentBuilder和responsehandler的類。 要注意的是返回類型T。
我編寫了一個抽象類WSResponse
,然后將其擴展為MyWSResponse
以便我的響應處理程序看起來像
ResponseHandler <WSResponse> rh = new MyWSResponse();
調用此post方法的方法具有此簽名
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
被稱為
GPClient cl = new GPClient(myhttpParams);
cl.callPost(d)
PS:這是我第一次處理仿制葯
這種類型的方法- <T> T method(things that don't mention T)
-幾乎從來都不是您想要做的,並且非常危險,因為它們不可避免地涉及到可能不起作用的強制轉換-但除非在運行時失敗,否則不會警告您。 我懷疑此方法的返回類型應該只是WSResponse
,但是您的問題還不夠清楚,我無法確定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.