2015-03-10 6 views
-3

Уровень соответствия компилятора моего eclipse установлен в 1.7, но я все еще получаю вышеуказанную ошибку. почему это так?Autoboxing: тип несоответствия не может отличить int от Integer

Код:

public Integer next(){ 
    Integer i = nextnode.item; // nextnode.item is giving int 
    nextnode = nextnode.next; 
    return i; 
} 

Я ценю вашу помощь.

+0

Является ли 'Integer' переменной типа? –

+3

Пожалуйста, покажите самый маленький пример кода запуска, который демонстрирует проблему. Например, что такое 'nextnode'? – Jason

+0

Что вы подразумеваете под типом переменной? @SotiriosDelimanolis – onlycode

ответ

0

Без дополнительной информации, лучшее, что я могу предложить, используя Integer.valueOf(int) (Java 1.5+) Таким образом, ваш код должен работать, и вы можете посмотреть на ваш уровень компилятора проекта на досуге, как

Integer i = Integer.valueOf(nextnode.item); 
0

Этот класс Безразлично Компиляция.

class MyClass<Integer> { 

    public Integer method() { 
     return 42; 
    } 
} 

Причина, по которой не компилируется, что Integer не имеет свое обычное значение, потому что мы используем его в качестве имени параметра типа. Обычно мы используем однобуквенное имя, например T или E.

Просто избавитесь от <Integer> и скомпилируйте его.

+0

Как это относится к вопросу ОП? –

+0

@ScaryWombat Он отвечает на него. Вопрос OP состоял в том, «почему я получаю сообщение, не могу отличить int от Integer». Вероятно, поэтому. –

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