java Class的 getSuperclass与getGenericSuperclass区别
Class的getInterfaces与getGenericInterface区别 http://www.cnblogs.com/maokun/p/6773076.html
一、getSuperclass 返回直接继承的父类(由于编译擦除,没有显示泛型参数)
Class<? super T> |
getSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。 |
返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。
如果此 Class 表示 Object 类、一个接口、一个基本类型或 void,则返回 null。
如果此对象表示一个数组类,则返回表示该 Object 类的 Class 对象。
- 返回:
- 此对象所表示的类的超类。
二、getGenericSuperclass 返回直接继承的父类(包含泛型参数)
Type |
getGenericSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type。 |
返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type。
如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅 ParameterizedType 声明。
如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。
如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。
- 返回:
- 此对象所表示的类的超类
- 抛出:
GenericSignatureFormatError- 如果常规类签名不符合 Java Virtual Machine Specification, 3rd edition 规定的格式TypeNotPresentException- 如果常规超类引用不存在的类型声明MalformedParameterizedTypeException- 如果常规超类引用的参数化类型由于某种原因无法实例化
代码实例:

package cn.test;
public class Test {
public static void main(String[] args) {
System.out.println("Student.class.getSuperclass()\t"
+ Student.class.getSuperclass());
System.out.println("Student.class.getGenericSuperclass()\t"
+ Student.class.getGenericSuperclass());
System.out.println("Test.class.getSuperclass()\t"
+ Test.class.getSuperclass());
System.out.println("Test.class.getGenericSuperclass()\t"
+ Test.class.getGenericSuperclass());
System.out.println("Object.class.getGenericSuperclass()\t"
+ Object.class.getGenericSuperclass());
System.out.println("Object.class.getSuperclass()\t"
+ Object.class.getSuperclass());
System.out.println("void.class.getSuperclass()\t"
+ void.class.getSuperclass());
System.out.println("void.class.getGenericSuperclass()\t"
+ void.class.getGenericSuperclass());
System.out.println("int[].class.getSuperclass()\t"
+ int[].class.getSuperclass());
System.out.println("int[].class.getGenericSuperclass()\t"
+ int[].class.getGenericSuperclass());
}
}
class Person<T> {
}
class Student extends Person<Test> {
}

输出结果:
Student.class.getSuperclass() class cn.test.Person
Student.class.getGenericSuperclass() cn.test.Person<cn.test.Test>
Test.class.getSuperclass() class java.lang.Object
Test.class.getGenericSuperclass() class java.lang.Object
Object.class.getGenericSuperclass() null
Object.class.getSuperclass() null
void.class.getSuperclass() null
void.class.getGenericSuperclass() null
int[].class.getSuperclass() class java.lang.Object
int[].class.getGenericSuperclass() class java.lang.Object from: https://www.cnblogs.com/maokun/p/6773203.html
java Class的 getSuperclass与getGenericSuperclass区别的更多相关文章
- Class的 getSuperclass与getGenericSuperclass区别
一.getSuperclass 返回直接继承的父类(由于编译擦除,没有显示泛型参数) Class<? super T> getSuperclass() 返回表示此 ...
- getSuperclass与getGenericSuperclass区别
声明三个类class Person<T, V> {}class Teacher {}class Student extends Person<Student, Teacher> ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- 转:Java中abstract和interface的区别
转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...
- Java abstract class 和 interface 的区别
Java abstract class 和 interface 的区别 1. abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制 2. 以Door的抽象概 ...
- java虚拟机和Dalvik虚拟机的区别
java虚拟机和Dalvik虚拟机的区别: java虚拟机Dalvik虚拟机 java虚拟机基于栈. 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多dalvik虚拟机是基于寄存器的 j ...
- Java中this与super的区别【6】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...
- java 字节流和字符流的区别 转载
转载自:http://blog.csdn.net/cynhafa/article/details/6882061 java 字节流和字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不 ...
随机推荐
- 关于wordpress插件WP SMTP的邮箱设置
花了两天的时间把邮箱设置好了,把大概的步骤写下,放一下查到的资料. 1.去域名服务商那里添加MX记录 如下图的MX 2.测试主机是否禁用了mail()函数 参考链接wo ...
- jquery li a 样式
jQuery(".CwebtopNavContainer").find("li:last a").css("color","red ...
- fastdfs5.10 centos6.9 安装配置
下载相关软件 https://codeload.github.com/happyfish100/fastdfs/tar.gz/V5.10http://download.csdn.net/detail/ ...
- 04 java 基础:数据类型
java 数据类型:基本类型与引用类型 基本类型:数值型,其中数值型分为整型.浮点型,整型包括 byte.short .int.long ,默认为 int 类型.浮点类型分为单精度.双精度,分为 fl ...
- Codeforces Round #292 (Div. 1) C - Drazil and Park
C - Drazil and Park 每个点有两个值Li 和 Bi,求Li + Rj (i < j) 的最大值,这个可以用线段树巧妙的维护.. #include<bits/stdc++. ...
- Ubuntu 如何更换阿里源
#进入源地址 cd /etc/apt #备份源文件 sudo cp sources.list sources.list.bak #编辑 sudo vim /etc/apt/sources.list d ...
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)I - 没有名字
题目描述 tabris实在是太菜了,没打败恶龙,在绿岛也只捡到一块生铁回去了,为了不在继续拉低acimo星球的平均水平逃离地球,来到了Sabi星球. 在这里tabris发现了一种神奇的生物,这种生物不 ...
- HDU 6188 Duizi and Shunzi
栈. 将数字排序后,一个一个压入栈.如果栈顶两个元素形成了对子,那么$ans+1$,弹出栈顶两个元素:如果栈顶三个元素形成了顺子,那么$ans+1$,弹出栈顶三个元素. #include<bit ...
- React Native 系列(九)
前言 本系列是基于React Native版本号0.44.3写的.很多的App都使用了Tab标签组件,例如QQ,微信等等,就是切换不同的选项,显示不同的内容.那么这篇文章将介绍RN中的Tab标签组件. ...
- Redis学习篇(三)之Key相关操作
KEYS 作用:返回所有的给定模式的key 语法:KEYS pattern 通配符: *: 任意个字符 ?: 任意一个字符 []: 匹配[]之间的字符 [a-z] [A-Z] \x: 匹配特殊字符 ? ...