在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());
}
}