反射之Type类

Type类

Type接口是所有类型的父接口,有四个子接口和一个实现类。

Type实现图
Type实现图
  • Class类比较常见,表示的是原始类型。表示的Java类在JVM里表现为一个Class对象

  • ParameterizedType表示的是参数化类型,对应 List<T>List<String> 等格式,如List 这种带有泛型的类型。

    ParameterizedType接口中常用的方法有三个,分别为

    • Type getRawType() 返回参数化类型中的原始类型,如List 的原始类型为List

    • Type[] getActualTypeArguments() 获取参数化类型的类型变量或是实际类型列表,如List 的参数化类型列表为String,对于Map<String,Integer>中参数化列表为String和Integer

    • Type getOwnerType() 返回的是类型所属的类型,这个所属类型就像是 Map.Entry<K,V>的所属类型是Map<K,V>

  • TypeVariable表示的是类型变量,用来反应在JVM编译该泛型前的信息。对应 <T extends Comparable<T>> 中的 T 标识,例如List 中T就是类型变量,它在编译时需要被转换为一个具体的类型后才能正常使用。

    该接口有三个常用的方法,分别为:

    • Type[] getBounds() 获取类型变量的上边界,如果没有明确声明上边界则默认为Object。class Test 中K的上边界就是Person

    • D getGenericDeclaration() 获取声明该类型变量的原始类型,例如class Test 中的原始类型就是Test

    • String getName() 获取在源码中定义的名字,例如class Test 中为K

  • GenericArrayType表示的是数组类型且组成元素是ParameterizedType或TypeVariable,例如List []或T[]

    • 该接口只有一个方法,Type getGenericComponentType() 返回数组的组成元素类型
  • WildcardType表示的是通配符泛型,对应 ? extends CharSequence 中的 ?,例如 ? extends Number 和 ? super Integer

    • Type[] getUpperBounds() 返回泛型变量的上边界
    • Type[] getLowerBounds() 返回泛型变量类型的下边界

https://zhhll.icu/2020/java基础/反射/2.反射之Type/

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/148179.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ansible 企业实战详解

一、ansible简介1. ansible是什么2.ansible的特点ansible的架构图 二、ansible 任务执行1、ansible 任务执行模式2、ansible 执行流程3、ansible 命令执行过程 二 .Ansible安装部署1.yum安装2.ansible 程序结构3、ansible配置文件查找顺序4、ansible配置文件5.ansible自动化配置…

腾讯云2核4G和4核8G服务器配置5年租用价格表

腾讯云服务器网整理五年云服务器活动 txyfwq.com/go/txy 配置可选2核4G和4核8G&#xff0c;公网带宽可选1M、3M或5M&#xff0c;系统盘为50G高性能云硬盘&#xff0c;标准型S5实例CPU采用主频2.5GHz的Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器&#xff0c;睿频…

人工智能基础_机器学习035_多项式回归升维实战2_使用sklearn的PolynomialFeatures进行升维---人工智能工作笔记0075

我们再来做一个升维处理,这里我们不再自己去对数据进行比如,相乘操作,来给数据手动添加维度了, 这里我们用sklearn库提供的PolynomialFeatures来自动对数据进行升维. from sklearn.linear_model import LinearRegression # PolynowlalFeatures,多项式升维处理 from sklearn.…

婴儿洗衣机哪个牌子比较好?好用的内衣洗衣机推荐

宝宝衣服的清洗对父母来说都很重要&#xff0c;所以挑选一款适合宝宝的小型洗衣机显得尤为重要。也许有许多人认为&#xff0c;为婴儿购买独立的洗衣机是不必要的&#xff0c;但是你是否了解呢&#xff1f;新生婴儿的肌肤要比成人更脆弱&#xff0c;更易受到感染而受到伤害&…

保护数字前沿:下一代防火墙如何塑造网络安全的未来

下一代防火墙通过提供先进的威胁检测、精细控制和云安全功能&#xff0c;正在重塑网络安全的未来。随着数字环境的不断发展&#xff0c;组织必须采用这些创新解决方案来保护其数字资产并维护安全的数字前沿。 在当今互联的世界中&#xff0c;网络威胁变得越来越复杂&#xff0c…

高德地图系列(三):vue项目利用高德地图实现地址搜索功能

目录 第一章 效果图 第二章 源代码 第一章 效果图 高德地图为我们提供了搜索联想&#xff0c;以及搜索结果标记&#xff0c;该案例已将基础功能打通&#xff0c;后续我们肯定还会对功能有所修改,想实现自己想要的效果&#xff0c;基本上看高德地图文档对着改就好了&#xf…

深度强化学习论文中的阴影折线图——总结和分析

前言 作为目前人工智能算法的一个重要领域&#xff0c;强化学习算法的表现非常出色&#xff0c;然而&#xff0c;强化学习算法的结果是出了名的不稳定&#xff1a;超参数的搜索空间往往非常大&#xff0c;算法对不同超参数都较为敏感&#xff0c;且哪怕仅仅只有随机数种子的不…

FineReport -问题学习图表设计图表类型-单元格扩展父子格-报表预览

1,问:为什么本地每次预览都要填帐号密码?答:模板认证关闭一下及可 2.单元格扩展与父子格----左父格-扩展方向-箭头往那个方向就往那个方向 1)数据集参数 在定义数据集时,通过使用if函数判断参数的值是否为空,若为空就不过滤参数,若不为空就进行参数过滤。SELECT * FROM…

Windows UAC权限详解以及因为权限不对等引发的若干问题分享

目录 1、什么是UAC&#xff1f; 2、微软为什么要设计UAC&#xff1f; 3、标准用户权限与管理员权限 4、程序到底以哪种权限运行&#xff1f;与哪些因素有关&#xff1f; 4.1、给程序设置以管理员权限运行的属性 4.2、当前登录用户的类型 5、案例1 - 无法在企业微信聊天框…

吊椅在欧盟做EN581报告认证

什么是EN 581标准&#xff1f; EN 581标准是欧洲标准化委员会制定的关于户外家具机械物理性能要求的标准。该标准主要涉及耐候性、抗静态载荷、耐磨性、抗腐蚀性等方面的要求。 5.2 如何提高家具的抗静态载荷性能&#xff1f; 提高家具的抗静态载荷性能可以通过增加家具结构的…

8、数据结构-字符串、编码集

编码表 中文编码表 ​ 数字到中文单一字符的映射&#xff0c;汉字只能使用多字节的2字节&#xff0c;总有65535种状态。常见的中文编码有GB2312 、GBK 、GB18030 、BIG 5。 ​ 所有编码表都兼容单字节的ASCII表。 UNICODE ​ 多字节&#xff0c;一张编码表解决全球多数字符…

OpenAI 获得更多的英伟达 H100 芯片,CEO Sam Altman 预测明年芯片获取将更加顺利

在日前接受《金融时报》采访时&#xff0c;OpenAI 首席执行官 Sam Altman 表示&#xff0c;公司已经收到了备受期待的英伟达 H100 芯片订单&#xff0c;并预计不久后会收到更多。他补充道&#xff0c;「明年在获取更多芯片方面看起来已经会更好」。 OpenAI 等人工智能公司广泛使…

CSS Form表单布局

效果图 <Tab IsCard"true"><TabItem Text"表单信息-DIV版本"><div class"row"><div class"col"><label for"field1">工程名称:</label><input class"form-control" type&…

C++ [多态]

本文已收录至《C语言和高级数据结构》专栏&#xff01; 作者&#xff1a;ARMCSKGT 多态 前言正文多态的概念多态的定义构成多态的条件关于final和override关于重载,重写和重定义 抽象类概念补充 多态的原理虚表指针和虚表关于虚函数的调用动态绑定和静态绑定 单继承与多继承中的…

【仿真】ruckig在线轨迹生成器示例

该场景说明了使用 CoppeliaSim 中提供的 Ruckig 在线轨迹生成功能的各种方法&#xff1a; 1. 在线程脚本内使用单个阻塞函数&#xff08;红色&#xff09; 2. 在线程脚本中使用多个非阻塞函数&#xff08;黄色&#xff09; 3. 在非线程脚本中使用多个非阻塞函数&#xff08;…

2024免费的内存卡数据恢复软件EasyRecovery

内存卡删除的视频是有可能恢复的&#xff0c;当您在内存卡上删除视频文件时&#xff0c;实际上只是将该文件标记为可被覆盖&#xff0c;而并不是立即将其从内存卡上删除。这意味着在文件被覆盖之前&#xff0c;您有机会将其恢复。内存卡上的数据恢复原理有以下几点&#xff1a;…

【芯片设计- RTL 数字逻辑设计入门 5 -- 芯片产业 - 常见流程和术语】

文章目录 芯片产业 - 常见流程和术语角色晶圆晶圆等级工艺和阶段流片的过程和成本三大EDA厂商主流IP供应商 IC专业术语盘点&#xff08;A—G&#xff09;Flip-Flop 是什么&#xff1f;Flip-Flop 与 D触发器 芯片产业 - 常见流程和术语 角色 Foundry&#xff1a;在集成电路领域是…

索引的认识

目录 一、索引的介绍 介绍 为什么要引入索引&#xff1a; 索引的使用场景&#xff1a; 二、索引的优缺点 三、索引的类别 1、普通索引 2、唯一索引 3、主键索引 4、组合索引 5、全文索引 四、索引的失效与生效 五、聚集索引和非聚集索引的区别&#xff08;MYSQL&…

PHP 论文发表管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 论文发表管理系统是一套完善的web设计系统mysql数据库 &#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php 论文发表系统1 代码 https://download.csdn.net/download/qq_412213…

C# Onnx 轻量实时的M-LSD直线检测

目录 介绍 效果 效果1 效果2 效果3 效果4 模型信息 项目 代码 下载 其他 介绍 github地址&#xff1a;https://github.com/navervision/mlsd M-LSD: Towards Light-weight and Real-time Line Segment Detection Official Tensorflow implementation of "M-…