java核心学习(四十一) 反射和泛型

  JDK5以后,Class类增加了泛型功能,从而允许使用泛型来限制Class类,例如String.class的类型是Class<String>,如果Class对应的类暂时未知,则使用Class<?>。通过反射中使用泛型,可以避免使用反射生成的对象需要强制转换类型。

  java对于类型的抽象,有两个类:Type、ParameterizedType ,第一个类单纯的代表各种基本类型和引用类型,而第二个类代表包含泛型的引用类型。

  首先通过getGenericType方法可以获得泛型引用类型的Type对象,然后将之强制转换为ParameterizedType对象,再调用下面两个方法,就可以获得完整的泛型引用类型信息:

    getRawType():返回没有泛型信息的原始引用类型。

    getActualTypeArguments():返回泛型参数的类型。

原文地址:https://www.cnblogs.com/Theshy/p/7764492.html