但是为什么要做成这样,是语言的缺陷还是另有原因?
我原来也没注意到,只是最近在写一个递归函数时,我将一个Integer类型作为参数,目的是想保持一个索引值的变化,但我发现我压根儿没法将改变它的值.

解决方案 »

  1.   

    这个问题应该这样看:
    Integer是一个封装类,里边有一个字段存放的是int。
    你要考虑到多个拷贝的情况(多个reference),如果用一个reference能改变值,影响到了另一个reference的使用。
    所以,所有的封装类不能改变其所封装的值!
      

  2.   

    Integet i = new Integer(99);
    i = new Integer(9);我将一个Integer类型作为参数???? 为什么不用int?