`

JAVA-反射-getGenericSuperclass()介绍

    博客分类:
  • Java
 
阅读更多
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反射机制学习(二)

    这篇博文"Java反射机制学习(二)"可能深入探讨了如何利用反射进行动态类型处理、访问私有成员以及创建对象等核心概念。在这里,我们将详细讨论Java反射的基本用法及其在实际开发中的应用。 1. **什么是反射**: ...

    Java反射相当的文档及示例

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得动态性、灵活性和元编程成为可能,从而极大地扩展了Java开发者的工具箱。在Java中,...

    Java反射机制(推荐)

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这种能力使得Java开发者能够在运行时动态地获取类的信息(如类名、方法名、参数类型等)并调用...

    Java反射机制学习总结

    Java反射机制是Java编程语言中一个强大的工具,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于java.lang.reflect包中的API,主要包括Class类、Constructor类、Method类和Field类。以下是...

    java反射基本方法测试

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类、接口、字段和方法的信息,使得我们可以在不知道对象具体...

    java反射

    ### Java反射机制详解 #### 一、引言 在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时访问类的信息,并能够动态地创建对象、调用方法以及获取字段值等。这种能力对于框架设计、代码...

    Day43 Java反射(二)

    ### Day43 Java反射(二) #### Java反射机制概述 Java反射机制是Java语言提供的一种在运行时动态访问和操作类、对象、方法和属性的能力。通过反射,开发者可以在程序运行过程中获取类的信息,并能够创建对象、...

    java中的反射reflect

    本文将通过实例深入解析Java反射机制。 首先,我们来看`TestParam.java`和`ParamClass.java`这两个文件,它们可能涉及到参数化类的使用。在Java中,反射可以帮助我们在运行时获取泛型信息。尽管Java的类型擦除导致...

    Java利用反射获取类信息

    下面我们将详细探讨Java反射机制及其主要应用。 1. 获取类信息: 要获取类信息,首先需要获得`Class`对象。这可以通过以下几种方式实现: - 使用`Class.forName(String className)`,传入类的全名(包括包名)。 ...

    北大青鸟ACCP6.0 第三学期 Y2 JAVA方向 reflection 反射

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在北大青鸟ACCP6.0第三学期Y2的JAVA方向课程中,反射作为核心知识点被深入讲解,主要是为了提升...

    java反射及动态代理

    ### Java反射机制详解 #### 一、Type及其子类 `Type`是Java编程语言中所有类型的公共高级接口。它包括原始类型、参数化类型、数组类型、类型变量和基本类型。 - **原始类型**:如`int`, `double`等。 - **参数化...

    Java反射机制

    Java反射机制是Java语言的一个重要特性,它允许运行时的Java程序访问并操作类和对象的信息,甚至可以改变对象的行为。这一机制使得Java具有了高度的动态性,开发者可以通过字符串来调用方法、创建对象、获取类信息...

    Java反射及动态代理

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,甚至能够在运行时创建和操作类的对象。反射机制是通过`java.lang.reflect`包中的类和接口实现的,它为我们提供了对程序...

    Java泛型的用法及T.class的获取过程解析

    本文将详细介绍Java泛型的用法 及T.class的获取过程解析。 一、泛型的基本概念 泛型是Java 5中引入的一种新的语言特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。泛型可以应用于类、...

    Java-Custom-Generics:在 Java 中使用自定义泛型的简单示例

    10. **泛型与反射**:在使用反射时,由于类型信息在运行时被擦除,所以不能直接获取泛型的类型信息。但是,可以通过类的`getGenericSuperclass()`和`getGenericInterfaces()`等方法获取到带有类型参数的原始类型。 ...

    Java泛型_Java中的泛型结构_

    下面将详细介绍Java泛型的基本概念、使用方式及其相关结构。 1. 泛型的基本概念: - 类型参数(Type Parameter):在创建泛型类或泛型方法时使用的占位符,例如 `&lt;T&gt;`、`&lt;E&gt;` 等。 - 类型参数边界(Type Bounds)...

    类的反射机制

    6. **处理泛型**:虽然Java的泛型在编译后会被擦除,但反射可以通过`getGenericSuperclass()`和`getGenericInterfaces()`等方法获取到泛型信息。 7. **枚举和注解**:反射也可以用来处理枚举类型和注解,获取枚举...

    反射处理java泛型_.docx

    Java反射机制是Java语言的一个重要特性,它允许运行时访问类、接口、字段和方法的信息,包括私有成员。在处理泛型时,由于Java的类型擦除,直接使用常规方式无法获取到泛型参数的具体类型。这时,就需要借助反射来...

    反射机制.rar

    7. **泛型处理**: 虽然Java反射不直接支持泛型,但通过`getGenericSuperclass()`和`getGenericInterfaces()`等方法可以获取到带有类型信息的泛型声明,从而间接地处理泛型。 8. **枚举和注解**: 反射同样可以用于...

Global site tag (gtag.js) - Google Analytics