首页 > 编程语言 > 详细

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

时间:2016-06-04 12:12:09      阅读:204      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!