标签:
java中,无法获取范型的类型,例如:
public class Box<T> {
public static void main(String[] args) {
System.out.printf(T);//编译错误
}
}
其实,由于java是强类型语言,在编译时我们并不知道T是什么具体类型,只有在编译后,不同场景指定之后才会知道,所以在编译前是无法获取T的类型。如果想获取T的类型,可以在泛型类中声明一个对象,通过对象获取当前指定的类型。
例如:
public class TestGeneric<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
public void test() {
System.out.println(t.getClass() + ", " + t);
}
public static void main(String[] args) {
TestGeneric<String> testGeneric = new TestGeneric<String>();
testGeneric.setT("test");
testGeneric.test();
}
}
Java千百问_05面向对象(014)_如何获取范型的类Class
标签:
原文地址:http://blog.csdn.net/ooppookid/article/details/51583369