您的位置:首页 > 编程语言 > Java开发

java获取泛型参数getGenericSuperclass()

2016-12-23 11:59 441 查看
最近学习到AbstractDao

import java.io.Serializable;

public class Person<ID extends Serializable,T> {

}


这里是实现类

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class Student extends Person<Integer,Student> {

public static void main(String[] args) {
Student student=new Student();
Class clazz=student.getClass();
//getSuperClass() 获得该类的父类  即Person
System.out.println(clazz.getSuperclass());
//getGenericSuperclass()获得带有类型的父类  即Person<Integer,Student>
//Type是Java编程语言中所有类型的公共高级接口,它们包括原始类型,参数化类型,数组类型,类型变量和基本类型
Type type=clazz.getGenericSuperclass();
System.out.println(type);
//ParameterizedType参数化类型,即泛型
//Person<java.lang.Integer, Student>
ParameterizedType parameterizedType=(ParameterizedType)type;
//getActualTypeArguments获取参数化类型的数组,泛型有两个,获取第二位
Class class1=(Class) parameterizedType.getActualTypeArguments()[1];
System.out.println(class1);
}

/**
* 打印结果:
class Person
Person<java.lang.Integer, Student>
class Student

*/

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java