对阿,但是你的方法中是 i=new Integer(9999);  传进方法的是一个引用的副本,你将这个副本指向一个新的对象,然后返回了。而外面的i引用依然是原来的那个。所以是8888

解决方案 »

  1.   

    为什么Integer一类的基础类型包装类没有setter方法(setValue)
    可见一斑了
      

  2.   

    你真的可以的
    方法的参数是引用传递
    但是引用本身是值传递
    你修改引用本身
    public void changeMethod(Integer i){  
       i=new Integer(9999);  
     }  
    外面的i根本不会改变
    另外,你想改变外面的8888,用Integer对象,不设返回值恐怕作不到的。
    因为Integer使用了不变模式
    public class Entity {
        private Integer i;
        set...
        get...
    }
    public void changeMethod(Entity en){  
       en.set...(new Integer(9999));
     } 
    稍作修改,你用这个试试
      

  3.   

    rainsilence说的不错啊,现在懂了。