1、如何获取范型的类Class
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();
}
}
时间: 2024-10-15 15:24:34