博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取运行时类的父类及父类的泛型
阅读量:4177 次
发布时间:2019-05-26

本文共 1464 字,大约阅读时间需要 4 分钟。

获取运行时类的父类:

public class FieldTest {    @Test    public void test1(){        Class clazz=Person.class;        Class superclass = clazz.getSuperclass();//class test.Creature        System.out.println(superclass);//class test.Creature    }}

又因为:Person类声明为

@MyAnnotation(value = "hi")public class Person extends Creature
implements Comparable
,MyInterface{ private String name; int age;

所以可以去获取Person类父类的泛型

获取运行时类带泛型的父类

@Test    public void test1(){        Class clazz = Person.class;        Type genericSuperclass = clazz.getGenericSuperclass();//Type是接口        System.out.println(genericSuperclass);//test.Creature
}

获取运行时类的带泛型的父类的泛型

@Test    public void test1(){        Class clazz = Person.class;        Type genericSuperclass = clazz.getGenericSuperclass();//Type是接口        ParameterizedType parameterizedType= (ParameterizedType) genericSuperclass;//进行强转        Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();//获取实际上的类型参数,就是获取泛型类型        //因为只有一个泛型,所以数组的长度为1,就可以不用遍历了,直接把0索引进行输出        System.out.println(actualTypeArguments[0]);//class java.lang.String        //如果我们不想在输出结果中出现class        //方法一        System.out.println(actualTypeArguments[0].getTypeName());//java.lang.String        //方法二        //actualTypeArguments[0]没有getName操作,但Class有,而Class实现了Type,所以可以进行强转(actualTypeArguments[0]本质上也就是Class)        System.out.println(((Class)actualTypeArguments[0]).getName());//java.lang.String    }

转载地址:http://gsoai.baihongyu.com/

你可能感兴趣的文章
JOSSO入门指南及其与WildFly AS 10的集成
查看>>
为WildFly AS 10中的Liferay Portal 6.2配置JOSSO Agent
查看>>
Spring ORM与Hibernate的集成开发详解
查看>>
WildFly AS 10中基于PicketLink的SAML SSO实现
查看>>
Spring AOP概述
查看>>
Apache Maven入门指南
查看>>
Apache Maven的插件概述
查看>>
Apache Maven项目提供的Archetype插件详解
查看>>
Apache Maven项目提供的Compiler插件详解
查看>>
Apache Maven项目提供的Ant插件详解
查看>>
Apache Maven项目提供的AntRun插件详解
查看>>
Apache Maven项目提供的EJB插件详解
查看>>
Hibernate中持久化上下文的flush操作之一COMMIT
查看>>
Hibernate的乐观锁并发控制机制
查看>>
Hibernate的悲观锁并发控制机制及LockMode
查看>>
Hibernate中的数据的获取策略(fetching)
查看>>
Hibernate中通过HQL/JPQL查询的方式实现动态数据获取
查看>>
Hibernate中通过FetchProfile的方式实现动态数据获取
查看>>
Hibernate应用中通过JPA配置Entity缓存
查看>>
Hibernate中配置二级缓存的并发策略
查看>>