在C/C++中,我们可以利用指针或引用来解决问题,比如一下的C代码: void swap( int * a, int * b) ... { int temp = *a; *a = *b; *b = temp;} 或是以下C++代码: void swap( int & a, int & b) ... { int temp = a; a = b; b = temp;} 但是要在Java中实现这个功能就比较麻烦。 不妨大家可以先试试。 我下面就贴出自己实现这个功能的方法: class WrappedNumber < T extends Number > ... { private T i = null; public WrappedNumber(T i) ...{ this.i = i; } public T getNumber() ...{ return i; } public void setNumber(T i) ...{ this.i = i; }} public class Hello ... { public static <T extends Number> void swap(WrappedNumber<T> a, WrappedNumber<T> b) ...{ T temp1 = a.getNumber(); a.setNumber(b.getNumber()); b.setNumber(temp1); } public static void main(String[] args) ...{ WrappedNumber<Short> a = new WrappedNumber<Short>((short)10); WrappedNumber<Short> b = new WrappedNumber<Short>((short)20); Hello.<Short>swap(a, b); System.out.println("The answer is: a=" + a.getNumber() + ", b="+b.getNumber()); }}