`

JAVA-反射-getGenericSuperclass()

 
阅读更多
一.说明 

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


参考:http://bbs.csdn.net/topics/360169835
      http://www.tuicool.com/articles/JbyEjyJ
     http://wenku.baidu.com/link?url=9V7R3lnx6FoJsPknOM2RuZj1Sn2FjA-VNGNYBHqfLqfq6adnF_rNqguuFzf-vjqD-AUb9sZrhTtSJG7L014BJ8YLss-OOJg8MbDUfT4w9u3
分享到:
评论

相关推荐

    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)是一种强大的工具,它允许程序在运行时访问类的信息,并能够动态地创建对象、调用方法以及获取字段值等。这种能力对于框架设计、代码...

    java中的反射reflect

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

    Java利用反射获取类信息

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

    Day43 Java反射(二)

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

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

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

    Java反射机制

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

    java反射及动态代理

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

    Java反射及动态代理

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

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

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

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

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

    Java泛型_Java中的泛型结构_

    - 如果需要在运行时获取泛型信息,可以使用 `getGenericSuperclass()` 或 `getGenericInterfaces()` 等方法,但通常需谨慎处理。 总的来说,Java泛型为开发者提供了更高级别的抽象,提高了代码的清晰度、类型安全...

    反射处理java泛型_.docx

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

    类的反射机制

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

    反射机制.rar

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

Global site tag (gtag.js) - Google Analytics