1、启动Eclipse创建新的Java项目创建如图所示的测试类,其中ClassGetDemo内部包含Test静态内部类和main方法
2、对于已知类型获取该类的class对象很简单,直接使用类名.class就能够得到该类的class对象
3、假如用户只能拿到一个对象,想要获取对象所属的类class,只要调用obj.getClass()方法就能够得到它的类对象
4、观察上面的test.getClass()虽然它被定义成为Test类型,不过获取到的类对象确实实际的Child类型
5、接着看带有泛型的类定义,在Test类型上定义了泛型类型,在Child类继承时指定了泛型类类型为Integer,由于Java泛型擦出,实际上得到的只有原始类型
6、在不知道具体实现类型时如何获取泛型上的实际类型的class对象,Java提供了ob门钙蹲茌ject.getGenericSup髫潋啜缅erClass()和object.getSuperClass()两个方法,可以看到getSuperClass()获取到了擦出后的类型,getGenericSuperClass()获取到了泛型类型
7、实际上Child的父类型被称作参数化类型,可以将该类型转换成参数化类型,接着查看它的原始类型和泛型参数类型,可以看到泛型参数类型被成功获取到了