public class Test<T>{
//...........
}////////////////////如何在Test里面获取T的类型?
比如当 Test<String> test=new Test<String>()
Test里面如何获取T就的String??
能不能获得?如何获得?
//...........
}////////////////////如何在Test里面获取T的类型?
比如当 Test<String> test=new Test<String>()
Test里面如何获取T就的String??
能不能获得?如何获得?
一种泛化的类型。
这个是获得范型类class,跟楼主说的“Test里面如何获取T就的String”还是不大一样吧?
在java中,泛型类型只有在静态类型检查期间才出现,在此之后,程序中的所有泛型类型都将被擦出,替换为它们的非泛型上界。例如List <T>这样的类型注解将被擦除为List,而普通的类型变量在未指定边界的情况下将被擦出为Object。
public class Test <T>{
private Class type;
public Test1(Class type){
this.type = type;
}
public void print(){
System.out.println(type.getCanonicalName());
}
public static void main(String[] args) {
Test<String> t1 = new Test<String>(String.class);
t1.print();
Test<Integer> t2 = new Test<Integer>(Integer.class);
t2.print();
}
}
//out put
java.lang.String
java.lang.Object也可是这样:
public class Test<T> { List<T> lists = new ArrayList<T>();
public void add(T t){
lists.add(t);
System.out.println(t.getClass().getCanonicalName());
}
public static void main(String[] args) {
Test<String> t1 = new Test<String>();
t1.add("aaaaa");
Test<Integer> t2 = new Test<Integer>();
t2.add(new Integer(1));
}
}
//out put
java.lang.String
java.lang.Object