Я пытаюсь написать метод, который получает объект из базы данных. Этот метод должен иметь возможность указать, каким классом должен быть этот объект (например: get("some.key", Integer.class)
вернет целое число). Однако, если ожидаемый тип является целым числом, а наше значение - строкой, я бы хотел, чтобы эта строка была преобразована в целое число и возвращено. Мой текущий код выглядит так:
public <T> T get(String key, Class<T> type) {
Object element = ...;
if (type == Integer.class && element instanceof String) return Integer.parseInt((String) element);
return element;
}
Однако моя IDE выдает ошибку: при возврате Integer.parseInt((String) element)
метод ожидает возвращаемый тип типа T
, но я возвращаю целое число. , который в этом случае имеет тип T
, но он не принимает это.
Я пытался преобразовать его так: (T) Integer.parseInt((String) element)
, но моя IDE говорит, что это неконвертируемые типы.
Как я могу сделать так, чтобы этот метод возвращал действительный объект типа T
после синтаксического анализа Integer? Любая помощь приветствуется.