码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-06-04 12:13:24      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

点击进入_更多_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千百问_05面向对象(014)_如何获取范型的类Class

标签:

原文地址:http://blog.csdn.net/ooppookid/article/details/51583369

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!