2016-12-05 3 views
0

Нечетный вопрос: зачем нужен enum.class внутри конструктора EnumMap? Он знает свой тип, так как он прошел в шаблоне ...Зачем нужен enum.class внутри конструктора EnumMap?

Значение, почему мы должны использовать: EnumMap<E,V> e = new EnumMap<E,V>(E.class); и мы не можем просто использовать: EnumMap<E,V> e = new EnumMap<E,V>();

ответ

3

«Он знает, что его тип, так как он прошел в шаблоне ... "

Концепция шаблонов не существует на Java. Генерики используются во время проверки типов, но эти данные не используются во время выполнения, что означает, что во время выполнения фактический код будет EnumMap e = new EnumMap().

Предположительно класс используется для определения количества уникальных значений enum для инициализации размера карты, и поскольку эта информация не может быть передана классу через систему типов (из-за пределов генериков), вам необходимо передать точное Class экземпляр.

+0

Отличный ответ, и я смешал шаблоны с C++. –

Смежные вопросы