Как работает вывод типа Java?
Может кто-нибудь объяснить, как работает следующий синтаксис?
public static <K, V> HashMap<K, V> getMap(){
return new HashMap<K, V>();
}
Например, если этот метод был реализован в собственном неиспользуемом классе утилит, его можно использовать как статический метод фабрики для создания экземпляров карты, верно?
Map<Integer, String> myMap = MyUtil.getMap();
тогда вернул бы новый HashMap с целочисленными ключами и значениями String для его записей, я прав? Если да, то как типы ключа и входа карты реализуются компилятором и виртуальной машиной?
Я был бы очень признателен, если бы кто-нибудь мог объяснить, как это делает Java.