当前位置:首页 > Java技术 > 正文内容

getGenericSuperclass与getSuperclass解说

canca16年前 (2010-02-22)Java技术667

一.说明

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. }  
public class ClassA <T>{ private T obj; public void setObject(T obj) { this.obj = obj; } public T getObject() { return obj; } }

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. }  
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,

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/310.html

标签: Java技术
分享给朋友:

“getGenericSuperclass与getSuperclass解说” 的相关文章

Java语言的反射机制

    由于项目的需要,在项目中要实现即插即用的方式,也就是说可以动态地加载包,不用设置CLASSPATH路径。当项目发布时,不可能要用户来设置环境变量吧!因此,就要用到JAVA的反射机制了。昨天,我是在研究JAVA的JNI技术。由于没有时间,所以过几天才写JNI。今天...

JSP与Servlet的对应关系

以前在QQzone写下的文章现在贴到这里来了... 最近比较忙啊!现在抽身写一篇文章。是关于JSP与Servlet的对应关系的。希望对大家有所帮助。其实我也是刚刚学的......-------Servlet--------------JSP----------1.ServletContext&nbs...

IM技术(1)

    做项目了,NetCL今天开工了,在这些日子里,我会将自己研究的内容写下来。做个记录,以下是我在网上搜到的。关于管理用户状态的解决方案,当然,我都有一个方案。不过对客户端的任务有点重吧,我方法是客户端从服务器端获到一个用户在线状态后,接着就与服务器无关了。好友离线...

过滤网页HTML标记

JAVA过滤HTML中的所有标记。非常好用!! package canca.regex; import java.util.regex.Matcher;import java.util.regex.Pattern; public class HtmlFilter {  priva...

字符,字节和编码

字符,字节和编码

转自:http://www.regexlab.com/zh/encoding.htm------------------------------------------------------------- 级别:中级 摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应...

Java代理详话简说

        Java的代理,使项目实现低藕合成为可能。Spring框架中的AOP,内部就是用Java代理来实现。因此,认识JAVA代理原理对学习学Spring AOP是有密切关系的。    &nb...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。