`
zzc1684
  • 浏览: 1229070 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

类方法学习五:getGenericSuperclass,getSuperclass

阅读更多

一.说明

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

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

二.例子

1.ClassA.java

  1. public class  ClassA <T>{  
  2.   
  3.   private T obj;  
  4.   
  5.   public void setObject(T obj) {  
  6.   
  7.     this.obj = obj;  
  8.   
  9.   }  
  10.   
  11.     
  12.   
  13.   public T getObject() {  
  14.   
  15.     return obj;  
  16.   
  17.   }  
  18.   
  19. }  

2.Test.java

  1. import java.lang.reflect.Type;  
  2.   
  3. import java.lang.reflect.ParameterizedType;  
  4.   
  5.   
  6.   
  7. public class Test<T> extends ClassA<T>{  
  8.   
  9.   
  10.   
  11.   public static void main(String args[]) throws Exception{  
  12.   
  13.     System.out.println("======getSuperclass======:");  
  14.   
  15.     System.out.println(Test.class.getSuperclass().getName());  
  16.   
  17.       
  18.   
  19.     System.out.println("======getGenericSuperclass======:");  
  20.   
  21.     Type t = Test.class.getGenericSuperclass();  
  22.   
  23.     System.out.println(t);  
  24.   
  25.     if (ParameterizedType.class.isAssignableFrom(t.getClass())) {  
  26.   
  27.       System.out.print("----------->getActualTypeArguments:");  
  28.   
  29.       for (Type t1:((ParameterizedType)t).getActualTypeArguments()) {  
  30.   
  31.         System.out.print(t1 + ",");  
  32.   
  33.       }  
  34.   
  35.       System.out.println();  
  36.   
  37.     }  
  38.   
  39.   }  
  40.   
  41. }  

输出结果:

======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