上一篇博文中我自己试着用了下泛型类,昨天看java编程思想一书,发现里面有这么一段话:
使用参数化方法而不是用参数化类的方便之处在于:你不必为需要应用的每种不同类型都使用一个参数去实例化这个类,并且你可以将其定义为静态的。当然,你不能总是选择使用参数化方法而不是参数化类,但是它应该成为首选。
这句话有三层意思:
1)参数化类每次实例化的时候都需要调入每种类型。
2)参数化方法可以定义成静态的。作为一个初学者我是这么理解的,能被参数化的方法必定是getXXX之类的这种,而且在调用方法的时候会传参进来,所以不会对类中的域产生影响,所以可以定义为静态的,方便调用。
3)参数化方法虽然是首选,但二者选择用谁还要视情况而定。
参数化类:
class Test{ private T t; public Test (T t) { this.t = t; } public T get() { return t; }}
参数化方法:
class Test { public staticT get(T t) { return t; }}
二者调用的区别:
//参数化类的调用Testnum = new Test (6);Test str = new Test ("6");System.out.println(num.get());System.out.println(str.get());//参数化方法的调用Integer num = 6;String str = "6";System.out.println(Test.get(num));System.out.println(Test.get(str));
如果使用参数化类的方法,类中必须要有重载的构造方法;而参数化方法的方法,调用就非常轻松了。