我正面临泛型的问题。类型参数问题:“无法从参数化类型中选择”
这是我的一个类使用泛型:
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时,您可以利用类型参数。它纯粹是静态的,所有可能的参数只有一个类。 –