int eee = 5;
  
        Object eee2 = eee ;知道可以这样,但不知道怎样解释,大神们给小弟分析分析哈。。谢谢了。

解决方案 »

  1.   

    jdk1.5以后支持的,以前的版本是不支持的
    jdk1.5以后,int和Integer可以互换,double和Double可以互换,等等
    Object eee2 = eee ; //先把eee换成Integer对象,然后再赋给eee2
      

  2.   

    楼上说的很明白了如果在jdk5.0 之前,你必须这样做:
    1. int eee = 5;2. Integer eeeObject=new Integer(eee);  //将int数值类型包装为Integer对象类型,进行装箱操作3. Object eee2 = eeeObject;  //将Integer类型赋值给Object类型
    jdk5后 第2行代码中的操作被编译器自动优化处理了,所以你可以直接向那样使用.
    Java中所有对象的基类是Object,所以可以将继承自Object任何类型赋值给Object,Integer也不例外.
      

  3.   

    道理是对的,但是互换的说法可能不准备吧!这是java新引入的自动打包的功能,在jdk1.5之后,java可以自动将基本类型打包成相应的包装器类型,其实还是有内部的隐式的类型转换,只是被封装到了jvm内部而已。
      

  4.   

    JDK5.0后新加了 自动封箱和解箱