Почему компилятору Java не нравится примитивный интервал как тип для значений в HashMap?

Компилятор жалуется на этот код:

    HashMap<String,int> userName2ind = new HashMap<String,int>();
    for (int i=0; i<=players.length; i++) {
        userName2ind.put(orderedUserNames[i],i+1);
    }

Это пишет "неожиданный тип" и точку на int. Если я заменяю int String и i+1 i+"1", компиляция идет хорошо. Что не так с в здесь?

27
задан MalsR 24 April 2014 в 21:53
поделиться

1 ответ

Это нормально с Integer , но не подходит с int - Дженерики Java работают только со ссылкой типы , в основном: (

Попробуйте это - хотя имейте в виду, что он закроет все:

HashMap<String,Integer> userName2ind = new HashMap<String,Integer>();
for (int i=0; i<=players.length; i++) {
    userName2ind.put(orderedUserNames[i],i+1);
}
42
ответ дан 28 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: