我是一个完全的初学者,我正在努力学习java。我读到了Autoboxing和Unboxing here的概念。
我正在开发java版本的1.8.0_05并使用Eclipse。
代码是:
class Test {
public static void main(String[] args) {
Integer iob = 100; // shows error -> Type mismatch: Cannot convert from int to Integer
}
}谢谢你的帮助。
发布于 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特性。
发布于 2014-07-06 07:51:52
听起来您在Eclipse中设置了错误的语言级别。
请参阅@Override gives error in eclipse?:
要更改语言级别,请转到项目>属性> Java编译器并在那里设置语言级别。您可能需要单击以启用特定于项目的设置。
发布于 2014-07-06 07:59:27
自动装箱功能从Java 1.5开始可用。
确保您运行的是至少Java 1.5。
否则,您需要new Integer(100)或Integer.valueOf(100)。或者只是将其声明为int而不是Integer。
您可以使用以下命令检查PATH和JAVA_HOME:
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}
这可以帮助弄清楚发生了什么。
https://stackoverflow.com/questions/24591491
复制相似问题