Integer i = new Integer(1) + new Integer(2);  这种写法合法吗?  我编译了一下貌似是合法的~得出来的结果i=3和 int出来的3是相同的吗??
      例如用个switch(i){
              case 3:省略
}          我编译了一下好像也是成功的。

解决方案 »

  1.   

    这种写法在JDK6.0以上版本是可以的,JDK6.0提供了自动装箱拆箱的功能。如果是6.0以下的版本,你就要强制转换类型了。
      

  2.   

    严格来说,那样是不符合java中面向对象的编程规范的,答案是对的,那是因为:new Integer(1)默认是这样的:(new Integer(1)).toString,得到的也就是1的值,同理后面也一样,所以你的结果并没有错误!可以通过,应该是可以的吧,没有出现致命性的或者说是执行中的错误!!