sle*_*ske 10 java eclipse autoboxing javac
以下代码
public class TestComparison {
public static void main(String[] args) throws Exception {
boolean b = true;
Object o = new Boolean(true);
System.out.println("comparison result: "+
(o == b)); // Eclipse complains about this expression
}
}
Run Code Online (Sandbox Code Playgroud)
使用javacV1.7.0_15 编译时没有错误,并在运行时打印"false".但是,Eclipse Juno抱怨"不兼容的操作数类型Object和boolean".
显然,javac自动装配了原始布尔值b,然后通过对象相等进行比较o和自动装帧b,产生false,而Eclipse拒绝进行自动装箱.
根据Java语言规范,哪种是正确的行为?我应该在哪里提交错误?
注意:如果我更改oto 的类型Boolean,事情按预期工作:Eclipse接受代码,代码打印"true".
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |