当前位置: 安卓之星 -> Java开发 -> JAVA-反射-getGenericSuperclass()

JAVA-反射-getGenericSuperclass()

作者:网络 发表于: 2016-08-24 点击: 489 次

一.说明  
1.Class<? super T> getSuperclass():返回本类的父类 

2.Type getGenericSuperclass():返回本类的父类,包含泛型参数信息

public class Person<T> {

}

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
  
public class Student extends Person<Student> {

	  public static void main(String[] args) {
		  Student st=new Student();
		  Class clazz=st.getClass();
		  //getSuperclass()获得该类的父类
		  System.out.println(clazz.getSuperclass());
		 //getGenericSuperclass()获得带有泛型的父类
		 //Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
		 Type type=clazz.getGenericSuperclass();
		 System.out.println(type);
		 //ParameterizedType参数化类型,即泛型
		 ParameterizedType p=(ParameterizedType)type;
		 //getActualTypeArguments获取参数化类型的数组,泛型可能有多个
		 Class c=(Class) p.getActualTypeArguments()[0];
		 System.out.println(c);
	 }
 }
 
 打印结果:
 
 class com.test.Person
 com.test.Person<com.test.Student>
 class com.test.Student

相关文章

相关文章

赶快留言冒泡

  • 评论 (0)
  • 引用通告 (0)
目前还没有任何评论.
目前还没有任何Trackbacks和Pingbacks.
吐个泡浮上去.