Autoboxing:类型不匹配无法将int强制转换为Integer

时间:2015-03-10 01:53:19

标签: java

我的eclipse的编译器合规性级别设置为1.7,但我仍然遇到上述错误。为什么会这样?

代码是:

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果没有更多信息,我建议的最好的方法是使用Integer.valueOf(int)(Java 1.5+),这样你的代码就可以工作了,你可以在闲暇时看看项目编译器级别,如

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

答案 1 :(得分:0)

这门课没有编译。

class MyClass<Integer> {

    public Integer method() {
        return 42;
    }
}

它没有编译的原因是Integer没有它的通常含义,因为我们使用它作为类型参数的名称。通常我们使用单字母名称,例如TE

摆脱<Integer>并编译。