`
zhangzuanqian
  • 浏览: 268796 次
  • 来自: ...
社区版块
存档分类
最新评论

类方法学习五:getGenericSuperclass,getSuperclass

 
阅读更多

一.说明

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

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

二.例子

1.ClassA.java

public class  ClassA <T>{

  private T obj;

  public void setObject(T obj) {

    this.obj = obj;

  }

  

  public T getObject() {

    return obj;

  }

}

 2.Test.java

import java.lang.reflect.Type;

import java.lang.reflect.ParameterizedType;



public class Test<T> extends ClassA<T>{



  public static void main(String args[]) throws Exception{

    System.out.println("======getSuperclass======:");

    System.out.println(Test.class.getSuperclass().getName());

    

    System.out.println("======getGenericSuperclass======:");

    Type t = Test.class.getGenericSuperclass();

    System.out.println(t);

    if (ParameterizedType.class.isAssignableFrom(t.getClass())) {

      System.out.print("----------->getActualTypeArguments:");

      for (Type t1:((ParameterizedType)t).getActualTypeArguments()) {

        System.out.print(t1 + ",");

      }

      System.out.println();

    }

  }

}

 

输出结果:

======getSuperclass======:

ClassA

======getGenericSuperclass======:

ClassA<T>

----------->getActualTypeArguments:T,

分享到:
评论

相关推荐

    类的反射机制

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

    Java反射机制学习总结

    反射也可以处理泛型信息,虽然在运行时泛型信息会被擦除,但可以通过`getGenericInterfaces()`、`getGenericSuperclass()`、`getGenericParameterTypes()`等方法获取到泛型类型参数。 8. 注解处理: 反射可以用来...

    Java反射机制学习(二)

    在Java编程语言中,反射机制是一项强大的工具,它允许程序在运行时检查并操作类、接口、字段和方法的信息。这篇博文"Java反射机制学习(二)"可能深入探讨了如何利用反射进行动态类型处理、访问私有成员以及创建对象...

    泛型工具类

    - 首先,方法尝试通过`getGenericSuperclass()`获取当前类的泛型超类。如果当前类没有泛型超类,则返回`Object.class`作为默认类型。 - 接着,方法会检查获取到的类型是否为`ParameterizedType`类型,这是Java泛型...

    Java反射机制(推荐)

    2. **获取类信息**:一旦有了Class对象,就可以获取类的各种信息,如类名(`getName()`)、父类(`getSuperclass()`)、接口(`getInterfaces()`)、构造器(`getConstructors()`)、方法(`getMethods()`)和字段...

    java反射基本方法测试

    例如,`getGenericSuperclass()`和`getGenericInterfaces()`可以获取类的泛型超类和接口,`getGenericParameterTypes()`和`getGenericReturnType()`可以获取方法的泛型参数和返回类型。 八、安全性与性能 11. 反射...

    java反射及动态代理

    - `Type getGenericSuperclass()`:获取类的直接超类的类型。 - `Type[] getGenericInterfaces()`:获取类实现的接口的类型。 #### 三、Type在`java.lang.reflect`中的使用 - **Type子接口**: - `Class&lt;T&gt;`:...

    Java Reflection In Action 源代码

    5. **泛型处理**:反射还可以处理泛型信息,虽然在运行时会丢失类型参数的具体信息,但可以通过`getGenericSuperclass()`和`getGenericInterfaces()`等方法获取到泛型声明。 6. **接口实现**:反射也支持检查类是否...

    Java反射相当的文档及示例

    6. **泛型处理**:虽然Java的泛型在运行时被擦除,但反射可以提供一些关于类型参数的信息,如`getGenericSuperclass()`和`getGenericInterfaces()`方法。 7. **接口实现检查**:通过`isInstance()`方法,我们可以...

    反射机制.rar

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。这一机制的核心在于Java.lang.reflect包,它提供了Class、Constructor、Method、Field等一系列类,使得我们...

    Day43 Java反射(二)

    Java反射机制是Java语言提供的一种在运行时动态访问和操作类、对象、方法和属性的能力。通过反射,开发者可以在程序运行过程中获取类的信息,并能够创建对象、调用方法、修改属性等。这种强大的功能为Java开发提供了...

    Java利用反射获取类信息

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段以及方法的信息。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改类的行为。这个过程通常...

    java中的反射reflect

    Java中的反射(Reflect)是Java语言的一个重要特性,它允许运行时访问类的信息,包括类名、属性、方法等,并可以动态地创建对象和调用方法。反射在很多场景下非常有用,比如在框架开发、插件系统、元数据驱动编程等...

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

    首先,我们使用`getClass()`方法获取当前类的Class对象,然后使用`getGenericSuperclass()`方法获取当前类的父类的Type对象。最后,我们使用`getActualTypeArguments()`方法获取Type对象中的实际类型参数,然后将其...

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

    虽然Java泛型在编译后会被擦除,但反射仍可以提供一些关于泛型类型的信息,如`getGenericSuperclass()`和`getGenericInterfaces()`方法可获取带有类型参数的父类和接口信息。 七、异常处理 在使用反射时,需要注意...

    Java泛型_Java中的泛型结构_

    Java泛型是Java编程语言中一个强大的特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。泛型的主要目标是提高代码的类型安全性和重用性,减少类型转换的麻烦,并在编译时捕获可能的类型错误。...

    JSP,SSH框架学习日志3,DAO层.pdf

    接下来,实现这个接口的抽象类`CommonDAO`,它包含了对Hibernate SessionFactory的引用以及一个构造方法,用于获取具体的实体类类型。`CommonDAO`提供了`SessionFactory`的getter和setter方法,以及一个构造器,通过...

    Java反射及动态代理

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

Global site tag (gtag.js) - Google Analytics