JAVA-反射-getGenericSuperclass()介绍

转载 2016年08月30日 10:30:21
package com.learn.test;
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 Person<T>{
    
}
输出结果如下:

class com.learn.test.Person
com.learn.test.Person<com.learn.test.Student>
class com.learn.test.Student





相关文章推荐

Java中的getGenericSuperclass方法的基本用法

通过getGenericSuperclass方法可以获取当前对象的直接超类的 Type 实例: package cn.tzz.lang.clazz; public class User { ...
  • tanksyg
  • tanksyg
  • 2015年11月19日 15:15
  • 13506

java反射之getGenericSuperclass方法的用处

java 反射 注解

java反射获得泛型参数GETGENERICSUPERCLASS()

public class Person { } import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type;...

getGenericSuperclass getSuperclass 区别

//三大框架学完了,现在自己正在创建基类这样Hibernate的操作就不用一个一个去创建。所以需要调用泛型getGenericSuperclass 来解决这个问题。希望我能把这个问题说明白 现在我先...

getClass(),class属性和getName()解析getGenericSuperclass

getClass返回的是Class对象,这个对象用来描述你现在所使用的对象的类信息,比如有 Class A, A a; a.getClass(); 将返回a对象的信息描述,当然这些信息...

ParameterizedType getGenericSuperclass 获取泛型参数;class getClass区别

泛型的好处:     泛型的主要好处就是让编译器保留参数的类型信息,执行类型检查,执行类型转换(casting)操作,编译器保证了这些类型转换(casting)的绝对无误。         /...

[Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化

Java 8中同时存在面向对象编程(OOP)和函数式编程(FP, Functional Programming)这两种编程范式。实际上,这两种范式并不矛盾,只是着重点不同。在OOP中,着重于通过丰富的...

java8__forEach内部迭代

forEachd java8中集合类新增forEach方法,以进行内部迭代,数据可以用lambda进行处理。 和之前迭代比较 public class ListTest { public stat...

getSuperclass和getGenericSuperclass区别(java泛型和反射综合应用)

1.官方API对这两个方法的介绍 . getSuperclass : 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。如果此 Class 表示 Obje...

Java反射---getGenericSuperclass和ParameterizedType参数化类型的获取

在项目中遇到了:父类 Class 父类 () 的泛型 T 类型,面对在不同子类具体的实现上,如何实现在父类方法中对类型T 的动态调用。 具体事例如下:(伪代码) public class Paren...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA-反射-getGenericSuperclass()介绍
举报原因:
原因补充:

(最多只允许输入30个字)