I ran into a problem with generics.
Here is one of my classes that uses generics:
public class TokenServerResponse<D> {
private String responseCode;
private String responseMessage;
private D responseData;
....
Here is our class: TokenServerResponseparameterized D.
I would like to specify a type in one of our methods as follows:
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);
}
However, I get the following compiler error: cannot select from parameterized type.
How can I use a type parameter D? I also tried casting to no avail. What am I wrong?
This is how the method is called digest:
ResponseEntity<TokenServerResponse<DigestResponseData>> digestResponseEntity = digest(823, "1505", pan, true);
source
share