本帖最后由 bullfrog 于 2014-9-2 12:54 编辑
看到有几个贴子提到交换变量值的问题:
比如两个String类型的变量a, b,想用调用函数的方式交换a, b所表示的字符串;
或者任意类型T的两个变量a, b;交换他们所引用的两个对象;
用下面的泛型方法应该是可以做到的。
- public class tmp
- {
- public static void main(String[] args)throws Exception
- {
- Test a = new Test();
- Test b = new Test();
- System.out.println("a:::"+a+"....b:::"+b); //a, b在交换之前的值。
-
- /*
- 下面这一行比较重要,做的是b=a; a=b;这两个赋值动作。
- 相当于先把b的原始值传递给形式参数E x;
- 然后将a的原始值赋值给b,再将此时b的值,
- 也就是a的原始值赋值给形式参数 E y;
- 最后将函数的返回值,即b的原始值赋给a;
- */
- a = swap(b, b=a);
-
- System.out.println("a:::"+a+"....b:::"+b); //a, b在交换后的值。
- }
- public static <E> E swap(E x, E y)
- {
- return x;
- }
- }
- class Test
- {}
复制代码
但是如果a, b两个变量的类型不一样,就不知道怎么做了。
|
|