getType() 和 getGenericType()的区别

news2025/1/18 16:48:10

处理泛型时会经常用到这两个方法,但是二者的区别是什么?

先看看官方的解释:

getType ==》:Returns a Class object that identifies the declared type for the field represented by this Field object.

返回字段对象声明类型的类对象。

getGenericType =》Returns a Type object that represents the declared type for the field represented by this Field object.
If the Type is a parameterized type, the Type object returned must accurately reflect the actual type parameters used in the source code.
If the type of the underlying field is a type variable or a parameterized type, it is created. Otherwise, it is resolved.

返回字段对象声明类型的type对象, Type是参数化类型,则在源代码中必须准确返回Type对象的实际类型参数。

不是我外语不好,实在是官方的解释太几把烂了,写的啥玩意儿!

千言万语BB不如一句话代码,用代码来证明吧:

 从上面的例子可以看到:

如果字段类型是泛型:

getType()只会返回泛型尖括号前面的类型,也就是集合的类型

getGenericType()会同时返回集合类型和尖括号里面的泛型类型。

这就是差别!

还有一个重点需要注意:泛型其实有一个隐含的前提:泛型的载体一定是集合!(List ,Map,Set之类的),原因很简单!因为正是对成员变量进行类型约束,才产生了泛型,那么它作用的对象一定是一组成员,那不就正好是集合类型了

如果字段类型不是泛型:getType() 和 getGenericType()返回值则是一样的

 

 

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

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

相关文章

nodejs+python+php+springboot+vue 婚庆公司服务网站管理系统

管理员模块 (1)信息管理模块:对商家和个人的查看,修改。 (2)留言管理模块:对留言进行管理,确定是否能进行发布,对留言进行回复。 (3)权限管理&…

Git常用命令2

git commit --amend 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交,这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,…

【C++入门】一篇搞懂auto关键字

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C之路】 目录 作用不那么大的场景auto真正的价值注意点auto不能推导的场景范围for范围for的使用条件 作用不那么大的场景 在C中推出了…

工业元宇宙对于制造业的影响有哪些?

伴随元宇宙的快速发展,它在诸多现实场景中都实现了广泛应用,特别是在全球科技与产业竞争核心的智能制造领域。元宇宙与智能制造融合的本质是重构企业研发、制造、销售、终端四大场景,相当于把企业打包进虚拟世界,在虚拟世界中建设…

(五)ArcCatalog应用基础——ArcCatalog基本操作

(二)ArcCatalog应用基础——ArcCatalog基本操作 当ArcCatalog 与文件夹、数据库或者 GIS 服务器建立链接之后,就可以通过 ArcCatalog 来浏览其中的内容。ArcCatalog 具有浏览地图和数据、创建元数据、搜索地图数据、管理数据源等功能&#x…

SpringBoot RabbitMQ 死信队列

1. 死信定义 无法被消费的消息,称为死信。 如果死信一直留在队列中,会导致一直被消费,却从不消费成功,专门有一个存放死信的队列,称为死信队列(DDX, dead-letter-exchange)。 死信队列 DLX,Dead Letter Exc…

火山引擎 BVE 视频图片硬件编码器演进之路

动手点关注 干货不迷路 前言 近日,第 17 届世界编码器大赛 MSU 2022 公布硬件编码器比赛结果,在 60 fps(帧率)的超快视频编码赛道上,火山引擎多媒体实验室自主研发的 BVE 1.1 编码器表现突出,荣获最佳 FPGA…

计算机网络学习06(HTTP1.0 vs HTTP1.1)

1、响应状态码 HTTP/1.0仅定义了16种状态码。HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,100 (Continue)——在请求大资源前的预热请求,206 (Partial Content)——范围请求的标识码,409 (Conflict)…

【C++】priority_queue使用和模拟实现——仿函数

文章目录 1. priority_queue的使用1.priority_queue的介绍2.priority_queue的结构3. 主要接口4. 使用示例 2. 仿函数1. 仿函数的概念2.尝试实现仿函数 3.priority_queue的模拟实现1.priority_queue的结构2. 接口实现1.向下调整算法2. 向上调整算法3.构造函数4.修改数据5.获取数…

机器学习 -Statsmodels

机器学习记录 Statsmodels 用于探索数据, 估计模型, 并运行统计检验. conda install -y statsmodels线性回归 import numpy as np import pandas as pd import matplotlib.pyplot as plt import statsmodels.api as sm import statsmodels.datasets.utils as du import sea…

数据结构【二】:霍夫曼编码

霍夫曼编码(Huffman Coding)是可变长编码(VLC)的一种。本质上使用变长编码表对源符号进行编码,通过评估源符号出现概率的方法进行分类,将出现几率较高的源字符使用较短的编码,出现几率较低的源字…

Hive优化补充

目录 一、表设计优化 1.通过设计分区表,增加动态分区,查询时避免全表扫描 2.设计分桶表:适用于大表join大表的情况 最后,两张大表进行join转为两张分桶表进行join: 二、文件存储 1.文件格式-概述 2.文件格式——…

学系统集成项目管理工程师(中项)系列13b_人力资源管理(下)

1. 项目团队建设 1.1. 塔克曼(Tuckman)阶梯理论 1.2. 理论基础 1.2.1. 激励理论 1.2.1.1. 马斯洛需要层次理论 1.2.1.1.1. 生理需要 1.2.1.1.2. 安全需要 1.2.1.1.3. 社会交往的需要 1.2.1.1.4. 自尊的需要 1.2.1.1.5. 自我实现的需要 1.2.1.2. 赫茨伯格的双因素理论…

Leetcode力扣秋招刷题路-0802

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 802. 找到最终的安全状态 有一个有 n 个节点的有向图,节点按 0 到 n - 1 编号。图由一个 索引从 0 开始 的 2D 整数数组 graph表示, graph[i]是与节点 i 相邻的节…

Git HEAD及detached head

背景:最近在使用git checkout重置HEAD指向,偶尔会出现Detached HEAD提示,于是想探究一下具体的原理及过程,遂写下了这篇文章。一般checkout用于切换分支和检出历史的某个节点,或恢复工作区的文件,这三个功能…

OpenHarmony JS Demo开发讲解

项目结构 打开entry→src→main→js,工程的开发目录如图所示 其中, i18n文件夹:用于存放配置不同语言场景的资源,比如应用文本词条,图片路径等资源。en-US.json文件定义了在英文模式下页面显示的变量内容&#xff0c…

Java 泛型为什么设计成是可以擦除的

Java 泛型是 Java 5 引入的一种类型安全的编程机制,它允许在编译时指定泛型类型参数,从而提高代码的类型安全性和可读性。然而,Java 泛型的实现方式是通过类型擦除来实现的,这也引发了一些争议。本文将介绍 Java 泛型为什么设计成…

2023年某科技公司前端开发初级岗的面试笔试真题(含选择题答案、问答题解析、机试题源码)

📚关于该专栏: 该专栏的发布内容是前端面试中笔试部分真题、答卷类、机试等等的题目,题目类型包括逻辑题、算法题、选择题、问答题等等,除了内容的分享,还有解析和答案。真实来自某些互联网公司,坐标广东广州。 🔥🔥🔥 持 续 更 新 🔥🔥🔥 😉专栏博主: 黛…

HCIP-7.1交换机ARP、VLAN之间的三层通信技术学习

交换机ARP、VLAN之间的三层通信技术学习 1、ARP1.1、 地址解析过程1.2、ARP报文格式1.3、ARP表项1.4、免费ARP1.5、 VLAN间ARP代理1.5.1、解决同网段,不同广播域内主机互通问题;1.5.2、解决同网段,不同VLAN之间主机互通问题。1.5.3、解决同网…

Ignore insecure directories and continue [y] or abort compinit [n]?

问题: 在Mac终端中使用Zsh作为默认shell时,有时会弹出以下提示信息: Ignore insecure directories and continue [y] or abort compinit [n]? 这个提示出现的原因是因为Zsh在加载时会检查所有的目录是否安全,并拒绝加载不安全的…