`

JAVA-反射-getGenericSuperclass()介绍

    博客分类:
  • Java
 
阅读更多
package com.learn.test;
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 Person<T>{
    
}
输出结果如下:

class com.learn.test.Person
com.learn.test.Person<com.learn.test.Student>
class com.learn.test.Student

 

分享到:
评论

相关推荐

    Java泛型与类型擦除

    “编译器会进行泛型擦除”是一个常识了(好吧,实际擦除的是参数和自变量的类型)。这个过程由“类型擦除”实现。但是并非像许多开发者... Bar.class.getGenericSuperclass(); System.out.println(type.getActualTyp

    basedao的封装

    //获得当前类型的带有泛型类型的父类... ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass(); //获得运行期的泛型类型 clazz = (Class) ptClass.getActualTypeArguments()[0];

    HibernateCommonDAO

    Type type = getClass().getGenericSuperclass(); if (type instanceof ParameterizedType) { Type[] types = ((ParameterizedType) type).getActualTypeArguments(); entityClass = (Class)types[0]; }...

    高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    java八股文介绍00002

    java八股文,"Java八股文"通常指的是在面试Java开发者时经常被问到的一系列标准问题,这些问题往往是技术面试中的基础部分,用来评估应聘者对Java编程语言和Java虚拟机(JVM)的理解程度。这些问题的答案往往模式化,因此被称为“八股文”。虽然这个词汇带有一定的贬义,但是这些问题却是面试中不可或缺的一部分,因为它们能够快速地检验应聘者的基本技能和理论知识。

    东北大学本科毕业设计 论文latex模板 2019

    东北大学本科毕业设计 论文latex模板 2019 关于东北大学本科毕业设计论文的LaTeX模板,您可以参考以下两个资源: 1. **Acytoo/neu_bachelor_thesis_template**: 这个模板是修改自一位学长的模板,以适应东北大学最新的要求。它使用GBT7714-2005参考文献标准,并提供了详细的安装和使用说明。您需要使用xelatex进行编译,并可能需要手动安装参考文献的标准。此外,如果您使用的是VSCode编辑器,可以参考提供的VSCode配置。 2. **tzaiyang/NEUBachelorThesis**: 这个模板同样适用于东北大学本科生毕业论文。它提供了详细的VSCode配置,包括快捷键设置和texcount bug修复(仅限Windows用户)。此外,还提供了如何插入公式、图片和三线表的说明,以及如何引用参考文献的方法。 您可以根据自己的需求和喜好选择其中一个模板。如果您对LaTeX不熟悉,建议先学习一些基础知识,以便更好地使用这些模板。祝您毕业设计顺利!

    node-v7.2.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    串口通讯原理+硬件原理解释+软件配置

    STM32串口通信大纲---适用于初学者 I. 引言 学习背景与串口通信的重要性 简述本文目的与主要内容 II. STM32里的串口通信 基本概念与功能介绍 USART及STM32内置串口 全双工通信与异步时钟控制 接收/发送逻辑结构 III. 串口配置 选择合适的串口资源(USART1/2/3) 参数设置:波特率、位数、校验、停止位 GPIO配置:TX/RX引脚驱动方式 IV. 串口发送与接收 发送数据流程 设置TDR与发送移位寄存器 检测TXE标志位 数据移位与持续发送 接收数据流程 配置RX输入模式 读取RDR与RXNE标志 字节数据接收 V. 实现方式 不使用中断的简单示例 利用中断接收数据 查询中断状态 中断服务程序处理数据

    基于opencv和深度学习的手写计算器.zip

    基于opencv和深度学习的手写计算器.zip

    高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    node-v7.9.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于深度学习的手写数字识别.zip

    基于深度学习的手写数字识别.zip

    Parameter-Free Fast Pixelwise Non-Local Means Denoising

    这篇文章的核心内容是关于一种图像去噪算法——非局部均值(Non-Local Means, NLM)算法的快速且开源的实现。以下是文章的主要要点: 算法介绍:文章提出了一种快速且无参数的NLM算法实现,该算法用于去除图像中的噪声。NLM算法由Antoni Buades, Bartomeu Coll和Jean-Michel Morel在2005年引入,因其简单性、出色的视觉效果以及利用自然图像的非局部冗余性而受到广泛欢迎。 算法改进:文章基于线之和的计算来计算块距离,这些线在块移位下是不变的。通过从一个图像数据库中计算NLM的最佳参数(以平均峰值信噪比PSNR为标准),实现了一个无需参数调整的NLM算法。

    Hypack 2016、Hypack 2021、Hypack 2022、Hypack 2024 完整中文资源

    Hypack 2016、Hypack 2021、Hypack 2022、Hypack 2024 四个版本的完整中文资源,全部完成汉化,汉化完整错误少,全网汉化第一,替换相应版本的资源文件即可。 压缩包含资源文件lngEdit.db和汉化了的lngEdit.exe程序(命名为lngEditChs.exe)

    selenium 库和浏览器驱动的安装.rar

    selenium 库和浏览器驱动的安装.rar

    预警系统链性态网体系化作战矩阵.txt

    预警系统链性态网体系化作战矩阵.txt

    基于深度学习的普通话语音识别.zip

    基于深度学习的普通话语音识别.zip

    node-v7.1.0-sunos-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    com.smile.gifmaker.apk

    com.smile.gifmaker.apk

Global site tag (gtag.js) - Google Analytics