Я хотел бы переопределить абстрактный метод следующим образом:Java Дженерики Сопоставимые с наследованием
abstract <C extends Comparable<C>> Map<String, Function<E, C>> getSortingMap();
Метод перезаписаны выглядит следующим образом:
@Override
Map<String, Function<Contract, Comparable<?>>> getSortingMap() {
final Map<String, Function<Contract, Comparable<?>>> map = new HashMap<>();
map.put(Contract.APPRENTICE, e -> e.getApprentice().getLastName()); // String
map.put(Contract.COMPANY, e -> e.getCompany().getName()); // Name Object
map.put(Contract.EDUCATION_END, e -> e.getEducationEnd()); // Calendar
map.put(Contract.STATUS, e -> e.getStatus()); // ENUM
return map;
}
У меня есть предупреждение, я хотел бы пошла без Подавите потому что я предполагаю, что должно быть чистое решение:
Type safety: The return type Map<String,Function<Contract,Comparable<?
>>> for getSortingMap() from the type ContractIntegrationTest needs unchecked
conversion to conform to Map<String,Function<Contract,Comparable>> from the type
_AbstractFinderServiceIntegrationTest<Contract,ContractFilter,ContractSearch>
Есть ли какой-нибудь способ?