在C/C++中,我们可以利用指针或引用来解决问题,比如一下的C代码:
void
swap(
int
*
a,
int
*
b)
... {
int temp = *a;
*a = *b;
*b = temp;
}
... {
int temp = *a;
*a = *b;
*b = temp;
}
或是以下C++代码:
void
swap(
int
&
a,
int
&
b)
... {
int temp = a;
a = b;
b = temp;
}
... {
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());
}
}