Java千百问_05面向对象(014)_如何获取范型的类Class

点击进入_更多_Java千百问

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();
    }
}

你可能感兴趣的:(java泛型类型,获取泛型类型,泛型类型如何获取,获取T的类型,泛型T的类)