Я думаю, что это хорошая идея, чтобы объяснить, почему простое решение не работает и почему вы никогда, никогда не должны использовать это.
Предположим, вы можете привести List<Object>
к List<String>
(то же самое относится и к карте, просто более простой интерфейс). Что вы ожидаете от следующего кода:
List<Object> m = Something;
m.add("Looks good.");
m.add(42);
List<String> s = (List<String>)m; // uhuh, no we don't want that.
String myString = s.get(1); // huh exception here.
Теперь вы МОЖЕТЕ взломать его, используя решение Bohemians / Chris, но вы в основном разрушаете систему типов Java. НЕ ДЕЛАЙТЕ ЭТОГО. Вы не хотите, чтобы List<String>
содержал целое число! Получите удовольствие от отладки, что позже - дополнительный код циклического перебора всех переменных позволит избежать многих головных болей и вряд ли является проблемой производительности.
Если есть причина объявить Карту как берущую Объект вместо Строки, кто-то может добавить к ней любой объект - обычно вы можете избежать этого с помощью лучшего общего вида.