首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动装箱无法将int转换为Integer

自动装箱无法将int转换为Integer
EN

Stack Overflow用户
提问于 2014-07-06 07:48:14
回答 3查看 10K关注 0票数 7

我是一个完全的初学者,我正在努力学习java。我读到了AutoboxingUnboxing here的概念。

我正在开发java版本的1.8.0_05并使用Eclipse。

代码是:

代码语言:javascript
复制
class Test {
    public static void main(String[] args) {
        Integer iob = 100; // shows error -> Type mismatch: Cannot convert from int to Integer
    }
}

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-06 07:55:57

您需要将语言级别至少设置为1.5/5.0,才能利用自动装箱/取消装箱功能。

更改您在Project --> Properties --> Java Compiler中的设置,很可能是它没有设置到正确的级别。

注意:这与您正在使用的JDK版本没有直接的关系,它只是意味着您的java代码将被解释为不高于语言级别版本的级别,使用的JDK版本至少高于或高于给定的语言级别设置。

例如:您正在使用JDK 1.8+,将语言级别设置为5.0意味着您将只能使用jdk1.5以下的java特性。

票数 20
EN

Stack Overflow用户

发布于 2014-07-06 07:51:52

听起来您在Eclipse中设置了错误的语言级别。

请参阅@Override gives error in eclipse?

要更改语言级别,请转到项目>属性> Java编译器并在那里设置语言级别。您可能需要单击以启用特定于项目的设置。

票数 1
EN

Stack Overflow用户

发布于 2014-07-06 07:59:27

自动装箱功能从Java 1.5开始可用。

确保您运行的是至少Java 1.5。

否则,您需要new Integer(100)或Integer.valueOf(100)。或者只是将其声明为int而不是Integer。

您可以使用以下命令检查PATHJAVA_HOME

代码语言:javascript
复制
Object obj = System.getenv();
System.out.println(obj);

您应该会得到如下输出:

{JAVA_MAIN_CLASS_5612=org.eclipse.jdt.internal.junit.runner.RemoteTestRunner,外壳=/ PATH=/usr/bin:/bin:/usr/sbin:/sbin:/Users/fede/jdk1.8/bin,/bash,TMPDIR=/var/folders/zw/n554nzl151sgtr5rqftblcjm0000gn/T/,图标,__CF_USER_TEXT_ENCODING=0x1F5:0:0,APP_ICON_5439=../

/sts.icns,bashJAVA_HOME=/Users/fede/jdk1.8/,主目录=/Users/fede,LOGNAME=fede,Apple_PubSub_Socket_Render=/tmp/launch-5UzUjs/Render,SSH_AUTH_SOCK=/tmp/ USER=fede -2okgJL/Listeners,__CHECKFIX1436934=1,JAVA_STARTED_ON_FIRST_THREAD_5439=1}

这可以帮助弄清楚发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24591491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档