Java泛型的一种用法可以类比C++的模板类,用于构建参数化类型,即不指明具体的类型,提高代码的重用率;另一种用法是Java中的反射机制用到了泛型,这一块是我的知识盲点,用一个简单实例来说明:
import java.lang.reflect.Method;
public class Gene {
public static void main(String[] args){
//Gen<String> gen=new Gen<String>("aa");
Gen<Bird> gen=new Gen<Bird>(new Bird());
gen.showType();
}
}
class Bird{
public void test1(){
System.out.println("sss");
}
public void test2(){
System.out.println("mmm");
}
}
class Gen<T>{
private T a;
public Gen(T t){
this.a=t;
}
public void showType(){
System.out.println("类型是:"+a.getClass().getName());
//取出当前实例的所有成员方法
Method [] m=a.getClass().getDeclaredMethods();
for(int i=0;i<m.length;i++){
System.out.println(m[i].getName());
}
}
}