У меня проблема с дженериками.
Вот один из моих классов, который использует дженерики:
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);
DigestResponseData responseData = (DigestResponseData) digestResponseEntity.getBody().getResponseData();
- person balteo   schedule 29.11.2016