我正面臨泛型的問題。類型參數問題:「無法從參數化類型中選擇」
這是我的一個類使用泛型:
public class TokenServerResponse<D> {
private String responseCode;
private String responseMessage;
private D responseData;
....
這裏我們班:TokenServerResponse
與D
參數。
我想在我們的方法之一指定類型如下:
protected ResponseEntity<TokenServerResponse<DigestResponseData>> digest(long globalMerchantUId, String expirydate, String pan, boolean updateExpiryDate) throws Exception {
DigestRequest digestRequest = new DigestRequest();
digestRequest.setGlobalMerchantUid(globalMerchantUId);
digestRequest.setExpiryDate(expirydate);
digestRequest.setPan(pan);
digestRequest.setUpdateExpiryDate(updateExpiryDate);
return restTemplate.postForEntity("/digest", digestRequest, TokenServerResponse<DigestResponseData>.class);
}
不過,我得到以下編譯器錯誤:cannot select from parameterized type
。
如何使用類型參數D
?我也嘗試鑄造無濟於事。我錯了什麼?
這裏是如何digest
方法被稱爲:
ResponseEntity<TokenServerResponse<DigestResponseData>> digestResponseEntity = digest(823, "1505", pan, true);
你不能做TokenServerResponse .class。嘗試TokenServerResponse.class –
@MauricePerry。你的建議編譯得很好,但是在哪一點,我該如何利用類型參數?換句話說,當客戶端調用摘要方法時,我該如何依賴這種類型? – balteo
當您在類中聲明字段responseData時,您可以利用類型參數。它純粹是靜態的,所有可能的參數只有一個類。 –