关于TypeVariable的深度理解

news2024/11/27 22:35:28

在看java源码时,如果涉及到反射,会经常看到TypeVariable。

 

那么这玩意到底是个什么东西? 这是个必须要搞清楚的概念,否则很难理解源码的意图是什么?

我在这里先给出结论:这个问题的关键是具体类型和类型变量化。

我很不喜欢官方的Parameterized Type参数化类型的解释,啥玩意儿啊,就不能说人话吗,什么叫参数化类型?!扯淡的说法!

首先要理解具体类型:  比如String, Integer, List等,或者你自己写的Class,这些都是具体类型。

那么为什么会有TypeVariable这个概念,从英语名称的直译也可以看到叫做:类型变量。

换句话说就是类型不确定! 这也就是官方说的狗屎参数化类型!

什么时候会出现这种情况,对了,那就是泛型!

像我们定义泛型时那样:

Map<T, V>
List<U extends V>
BiConsumer<? super T, ? super U>

注意到了上面的T,U,V 这样的东东了吗,这个就是TypeVariable,也就是类型变量

当我们谈论类型变量化,其实是跟具体类型相对应的

类型不确定是问题的关键!所以用一个变量去表达类型,你可以理解为它可以代表任意类型。

TypeVariable的本质就是表达一个不确定的类型,具体来说就是一个泛型变量。

所以使用instanceof TypeVariable方法的目的:是判断一个类型是否是泛型变量(T, U),而不是一个具体类型

 

 只要类型不是具体类型,而是一个类型不确定的泛型变量,那么它就是TypeVariable

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux shell编程 循环语句for while实例

while 循环创建用户 i1 while [ $i -le 10 ] do useradd user${i} echo "123456" | passwd --stdin user${i} &> /dev/null let i done猜测价格 [rootxue opt]# cat caijia.sh price$[RANDOM%1001] #0-32767 i0 while true doread -p "input the price&…

尚融宝25-投资列表展示以及实现充值功能

目录 一、展示投资列表 &#xff08;一&#xff09;需求 &#xff08;二&#xff09;后端 &#xff08;三&#xff09;前端 二、充值功能 &#xff08;一&#xff09;需求 1、需求描述 2、流程 &#xff08;二&#xff09;充值 1、后端 2、前端 &#xff08;三&…

第九章 C#脚本(下)

本章节我们说一说MonoBehaviour这个类&#xff0c;它的内部有很多方法用来执行不同的逻辑。Unity脚本从唤醒到销毁都有着一套比较完善的生命周期&#xff0c;添加任何脚本都要遵守生命周期法则&#xff01;直白的讲&#xff0c;就是MonoBehaviour类中的方法的执行是有严格的顺序…

Windows强制删除文件夹

命令&#xff1a;rd/s/q 路径 如果文件较大&#xff0c;需要等待几分钟&#xff0c;但一定会删掉的。

使用Fork和GitHub完成团队项目开发

前提 拥有自己的GitHub账号项目组组长已经创建好了 一个远程仓库能够科学上网安装了Fork软件 基础步骤 该内容分为两个部分&#xff0c;分别为团队协作者&#xff08;项目成员&#xff09;和团队组织者&#xff08;项目组长&#xff09;&#xff0c;我们首先来介绍作为项目成员…

Docker-Compose 了解 部署nginx与lnmp

Docker-Compose Docker-compose 简介YAML 文件格式及编写注意事项Docker Compose配置常用字段Docker Compose 常用命令Docker Compose 文件结构部署 composeDocker Compose 环境安装 compose部署nginx&#xff08;1&#xff09;准备依赖文件编写配置文件docker-compose.yml com…

学生无线耳机哪款好?两百左右适合学生党的无线耳机推荐

学生无线耳机哪款好&#xff1f;现如今&#xff0c;学生党也成为了蓝牙耳机的主要用户群体之一。接下来&#xff0c;我来给学生群体推荐几款两百左右的无线耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;299 南卡小音舱的音质和佩戴体验都在…

Vue过渡与动画的实现效果

使用 transition 标签配合 CSS3 过渡实现【不完整代码】&#xff1a; Vue 还提供了四个 class 类名&#xff0c;分别是进入的起点&#xff08;v-enter&#xff09;进入的终点&#xff08;v-enter-to&#xff09;离开的起点&#xff08;v-leave&#xff09;离开的终点&#xff…

纷享销客标讯通,大客招标经营的杀手锏

呀&#xff0c;对手都中标了&#xff0c;我咋才知道&#xff1f;呀&#xff0c;能不能预测目标客户的招标&#xff1f;呀&#xff0c;对手有什么客户可以挖一挖&#xff1f; 呀&#xff0c;ROI 300倍的奥秘是什么&#xff1f; 纷享销客标讯通&#xff0c;帮助企业&#xff1a…

射频基础(一)

目录 一、电磁波 二、直射波 三、反射波 四、绕射波 五、散射波 六、趋肤效应 七、多径效应 八、阴影效应 九、菲涅尔区 十、慢衰落和快衰落 一、电磁波 电磁波是能量的一种&#xff0c;凡是高于绝对零度的物体&#xff0c;都会释出电磁波。电与磁可说是一体两面&#xff0c;电…

85.qt qml-炫酷烟花粒子特效(支持多种爆炸模式(文字)、爆炸阴影、背景场景)

效果如下所示: 截图如下所示: 实现内容如下所示: 1.实现多个爆炸效果2.爆炸的时候增加光度阴影效果3.由于场景有湖面,所以还需要增加一个倒影粒子组首先我们来学习下,该示例中所需要常用的类型点 1.如何更改粒子生命周期时的颜色变换动画 方法有两种。 1.1通过colorTable和s…

在 PDF 中添加文本的 3 种简单方法

我们更喜欢将我们的文件保存为 PDF 并打印它&#xff0c;这样打印的文件将保持原始的完美结构。你不得不承认&#xff0c;有时候&#xff0c;当你打印一个 Word 文件时&#xff0c;它可能会打印出乱七八糟的排版&#xff0c;这对进一步的工作来说是令人沮丧的。 PDF在我们的日…

【Python基础篇】从Hello, world到函数几分钟看完就都会了~

大家好&#xff0c;我是辣条哥~ Python是一种高级编程语言&#xff0c;易于学习和使用。以下是Python入门基础的一小部分&#xff1a; 目录 安装Python&#xff1a;编写第一个Python程序变量和数据类型运算符算术运算符&#xff1a;比较运算符&#xff1a;逻辑运算符&#xff1…

[CDC 2018] 理解压缩对抗隐私

Understanding Compressive Adversarial Privacy | IEEE Conference Publication | IEEE Xplore 摘要 本文提出了一种新的隐私保护方法&#xff0c;称为 压缩对抗隐私&#xff08;Compressive Adversarial Privacy&#xff0c;CAP&#xff09;&#xff0c;它结合了 压缩感知和 …

移动通信网络频段大全

01 5G NR 3GPP已指定5G NR 支持的频段列表&#xff0c;5G NR频谱范围可达100GHz&#xff0c;指定了两大频率范围&#xff1a; ①Frequency range 1 &#xff08;FR1&#xff09;&#xff1a;就是我们通常讲的6GHz以下频段&#xff0c;被称为 sub 6GHz&#xff1b; •频率范围&…

TDA4VM/VH 芯片硬件 mailbox

请从官网下载 TD4VM 技术参考手册&#xff0c;地址如下&#xff1a; TDA4VM 技术参考手册地址 概述 (Mailbox 的介绍在 TRM 的第7.1章节) Mailbox 使用邮箱中断机制实现了 VM 芯片的核间通信。 Mailbox 是集成在 NAVSS0 域下的一个外设&#xff08;NAVSS0 的说明可以查看&a…

(六)ArcCatalog应用基础——目录内容浏览

&#xff08;二&#xff09;ArcCatalog应用基础——目录内容浏览 目录 &#xff08;二&#xff09;ArcCatalog应用基础——目录内容浏览1.目录内容浏览2.地理数据浏览3.表格数据浏览3.1调整、冻结、排列3.2修改属性3.3表格数据统计3.4查询3.5数据字段的增删 1.目录内容浏览 Ca…

职责链设计模式解读

目录 问题引进 传统方案解决 OA 系统审批&#xff0c;传统的设计方案(类图) 传统方案解决 OA 系统审批问题分析 职责链模式基本介绍 基本介绍 职责链模式的原理类图 对原理类图的说明 职责链模式解决 OA 系统采购审批 应用实例要求 思路分析和图解(类图) 代码落地 …

局域网远程桌面工具推荐

有多种软件选项适用于局域网 (LAN) 中的远程桌面&#xff0c;包括 微软远程桌面、Splashtop、Teamviewer 等。 以下是根据性能、安全性、价格、品牌历史和其他因素对这些软件选项进行的详细比较和分析。 微软远程桌面&#xff1a; 微软远程桌面是专为 Windows 设备设计的远程…

题解,超星进程

A - Geometric Progression 思路&#xff1a;矩阵快速幂 构造[1,c]*[f(n-1)] [0,c] [c^(n-2)] ​ #include<bits/stdc.h> #include<iostream> using namespace std; typedef long long ll; ll a, x, MOD; struct matrix {ll a1, a2, b1, b2;matrix(ll a1, …