问题:交换a和b的值。class NewClass {
    public static void main(String[] args) {
        Integer a, b;
        a=3; b=4;
        swap(a, b);
        System.out.println("a=" + a + " b=" + b);
    }    public static void swap(Integer a, Integer b) {
        /*
         * ???   
         */
    }
}

解决方案 »

  1.   

    Integer好像也是不可变的以,与String是一样的.
      

  2.   

    楼主怎么把c/c++的那一套搞来了,java只有值传递,又没有传引用,又没有指针
      

  3.   

    主要是Integer没有提供set方法.
      

  4.   

    楼主自己写个int的包装类,就能实现这个功能了,用java.lang.Integer应该是不行的
      

  5.   

    String类的话可以改变,因为他用的是数组, 但是INTEGER都是finle的不能用反射改
      

  6.   

    class TestTwoInt {
    public static void main(String[] args) { myInt a = new myInt(10);
    myInt b = new myInt(20);
    swap(a, b);
    System.out.println("a:" + a + "  b:" + b);
    } public static void swap(myInt a, myInt b) {
    int temp = a.getInt();
    a.setInt(b.getInt());
    b.setInt(temp);
    }
    }class myInt {
    int a; myInt(int a) {
    this.a = a;
    } public int getInt() {
    return a;
    } public void setInt(int b) {
    a = b;
    } myInt(myInt a) {
    this.a = a.getInt();
    } public String toString() {
    return "" + a;
    }
    }
      

  7.   


    为什么要自己实现一个Int包装类呢,直接传个int型的不就行了吗?