黑马程序员技术交流社区
标题:
用泛型方法,交换任意两个同类型变量的值。
[打印本页]
作者:
bullfrog
时间:
2014-9-2 12:49
标题:
用泛型方法,交换任意两个同类型变量的值。
本帖最后由 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两个变量的类型不一样,就不知道怎么做了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2