【发布时间】:2014-11-11 17:02:19
【问题描述】:
我在一个名为 Sandbox.java 的文件中有以下测试类:
package cas;
public final class Sandbox {
public static void main(String[] args) {
int primitive = 42;
Integer boxed = primitive;
}
}
由于自动装箱,这是我期望的工作。但是,它无法编译并出现错误:“类型不匹配:无法从 int 转换为 Integer”。为了隔离测试用例,我将文件放在另一个 Eclipse 项目中,其中的代码完全相同,只是 package cas; 被替换为 package sandbox。在本项目中,编译正常。
我使用的是编译器合规级别 1.8,我认为是最新的 JDK。如果我没记错的话,因为自动装箱是在 1.5 中引入的,所以 int –> 整数转换应该没有任何问题,或者我认为。
我检查了两个项目的属性,每个带有“启用项目特定设置”复选框的页面都将其禁用。所以这两个项目的编译应该没有区别吧?
我不明白为什么这段代码会在 Java 1.8 环境中出错。
【问题讨论】:
标签: java eclipse autoboxing type-mismatch