То, что я пытаюсь сделать:Объявление универсального типа в метод, который определяет класс <?>
getMapType(String.class,String.class); //returns me a MapType of Map<String,String>
Что я пробовал:
public static <K extends Class<?>, V extends Class<?>> MapType getMapType(K keyClass, V valueClass) {
return objectMapper.getTypeFactory().constructMapType(HashMap.class, keyClass,valueClass);
}
Это дает мне предупреждение при объявлении K, V расширяет класс.
The type parameter V should not be bounded by the final type Class<?>. Final types cannot be further extended
Я знаю это означает, что любой класс не может расширить класс потому, что его окончательный класс. Если я удалю extends Class<?>
, метод constructMapType (...) завершится неудачно из-за типа. Мой вопрос в том, как я могу реализовать свой метод, чтобы не получить это предупреждение?
Я думаю, что цель немного отличается, поскольку речь идет не о построении экземпляра 'Map', но создание' MapType', который представляет собой представление типа Джексона, необходимое для привязки данных, позволяя Джексону узнать подробности типа для привязки данных к (или иногда от). – StaxMan