Как отмечают другие, дженерики являются функцией компилятора. JVM не имеет никакой реальной поддержки для дженериков. Это означает, что общая информация не может использоваться во время выполнения.
Для EnumMap<K extends Enum>
это означает, что вы получаете EnumMap<Enum>
во время выполнения без какой-либо информации о K. Это ограничение дженериков java можно обойти, передав классы универсальных аргументов конструктору в качестве объектов класса. все еще существует во время выполнения.