public class TestString { public void swap(Integer a, Integer b) {
      
Integer team;
team =a;
a = b;
b = team;
System.out.println("a="+a.intValue());
System.out.println("b="+b.intValue()); } public static void main(String[] args) { Integer a = Integer.valueOf(1);
Integer b = Integer.valueOf(3); TestString ts = new TestString();
ts.swap(a,b);
System.out.println("a="+a.intValue());
System.out.println("b="+b.intValue()); }
}这是我写的不能换值
高手指点一下???????!!!!!!!!1

解决方案 »

  1.   

    java里面和C不同只有传值没有传地址~
      

  2.   

    public class Mugs
    {
    int m ,n;
    public void Exchange(int a, int b)
    {
    m=b;
    n=a;
    }
    public static void main(String agrs[])
    {
    Mugs ob = new Mugs();
    int m = 44;
    int n = 77;
    System.out.println("before exchange: m = " + m + ",  n = " + n);
    ob.Exchange(m, n);
    System.out.println("after exchange: m = " + ob.m + ",  n = " + ob.n);
    }
    };
    给你一个参考。
      

  3.   

    Integer,String,Float,Double等包装类都是final的,所以不能作为引用传递
      

  4.   

    非基本类型都可以更改吧.
    Try "Integer"?
      

  5.   

    >arbuckle(Judas) 
    >非基本类型都可以更改吧.
    >Try "Integer"?对象也有分可改(mutable)不可改(immutable)的。所有的基本类型对应的对象类型(如String、Integer等)都是不可改的(immutable)。楼主可用数组的方式让函数修改数组中的元素。--
    http://www.agui.googlepages.com
    mailto: agui.cn(a)gmail.com
      

  6.   

    个人认为能不能改是类型时无关的,
    而和你想改变的内容有关。
    如果你仅仅想修改属性值,任何类型都可以,
    但是如果你想在方法内改变这个对象的值,
    很抱歉,任何类型都不行。
    因为JAVA中虽然说传递的使用
    实际上是引用的Copy.
    --------------------------------
    public static void increase1(A a){
        a.id = 5;
    }public static void increase2(A a ){
        a = new A();
        a.id = 5;
    }
    public void test(){
        A a = new A();//0
        increase1(a);//1
        increase2(a);//2
    }
    -------------------------------------
    由于传递的是引用的copy,即1和2处所传递的值和0处的是不同的东西,但是由于是copy,所以他们指向的是同一块地址,假设为X。increase1中改变的是属性,就相当于把X中的某一点给修改了,而0处的a仍然是指向X的,所以修改成功。而在increase2中,由于“a = new A();”,相当于将引用的copy指向了另外一个地址,但是它并没有对原来的值(即X)做任何修改,也就对于0处a没有任何影响了,所以increase2中的修改不成功。
      

  7.   

    http://blog.csdn.net/jianzhizg/archive/2006/12/02/1427086.aspx
      

  8.   

    别说java,C里面这样写也不能交换阿