java的泛型方法_Java中的泛型方法

article/2025/9/21 6:05:14

泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。

但是Java中的泛型方法就比较复杂了。

泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型。

定义泛型方法语法格式如下:

8d3d642c1984e4d1ef83734fe481952e.png

调用泛型方法语法格式如下:

e486fd85fd5b8bef8de19619683baf4e.png

说明一下,定义泛型方法时,必须在返回值前边加一个,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。

Class的作用就是指明泛型的具体类型,而Class类型的变量c,可以用来创建泛型类的对象。

为什么要用变量c来创建对象呢?既然是泛型方法,就代表着我们不知道具体的类型是什么,也不知道构造方法如何,因此没有办法去new一个对象,但可以利用变量c的newInstance方法去创建对象,也就是利用反射创建对象。

泛型方法要求的参数是Class类型,而Class.forName()方法的返回值也是Class,因此可以用Class.forName()作为参数。其中,forName()方法中的参数是何种类型,返回的Class就是何种类型。在本例中,forName()方法中传入的是User类的完整路径,因此返回的是Class类型的对象,因此调用泛型方法时,变量c的类型就是Class,因此泛型方法中的泛型T就被指明为User,因此变量obj的类型为User。

当然,泛型方法不是仅仅可以有一个参数Class,可以根据需要添加其他参数。

为什么要使用泛型方法呢?因为泛型类要在实例化的时候就指明类型,如果想换一种类型,不得不重新new一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。

附:Java泛型方法演示代码。

本文转自http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html 感谢作者


http://chatgpt.dhexx.cn/article/dTTAfdGP.shtml

相关文章

泛型类和泛型方法

泛型方法是指调用该方法时才声明泛型类型。即不用和泛型类的泛型类型一致。 当为实例泛型方法时,可以声明类为泛型类或者将该方法声明为泛型方法。 当有静态泛型方法时,只能将该方法声明为泛型方法。 泛型类可以继承泛型类,也可以继承是具有泛…

Java泛型方法解惑

概述 什么是泛型? 泛型,是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 提到参数,最熟悉的就是定义方法…

推荐一款超级好用的AI模型训练平台——Tesra超算网络!

2019独角兽企业重金招聘Python工程师标准>>> 作为一个刚接触AI行业的小萌新,好不容易做好了一个深度学习的模型,然后就兴冲冲的想要在我的电脑上做训练,自我感觉我的笔记本的性能还不错,然后loss下降很慢,再…

AI行业全面复苏,秋招AI岗位竞争激烈!Tesra超算网络助力找到合适的岗位!

2019独角兽企业重金招聘Python工程师标准>>> 随着各大互联网巨头纷纷下场,AI技术再经历过几次寒冬之后全面复苏,站在了时代的风口,迎来了爆发时期,成为了时代的趋势!人工智能企业搞得轰轰烈烈势如破竹&…

大数据与AI时代,企业爆发之道?Tesra超算网络保驾护航!

2019独角兽企业重金招聘Python工程师标准>>> 现如今,人人都在谈论大数据,大数据究竟能够为企业带来什么呢?大数据又怎么才能够为企业带来最大的效益呢? 随着大数据时代的到来,根据数据分析的需求也由此诞生…

人工智能的春天来了!Tesra超算网络,助力AI开发!

2019独角兽企业重金招聘Python工程师标准>>> 我们必须承认,尽管人工智能技术的起源可以追溯到数十年前,不过受限于软硬件的发展,人工智能直到近几年才开始突飞猛进。其中算力是制约人工智能发展的首要因素,随着算力瓶颈…

ApacheCN×Tesra 免费算力申请活动

Tesra 超算网络是由 SAIC 基金会发起的,专为人工智能产业提供底层技术及 AI 资源共享服务的分布式"超算中心"。Tesra 超算网络基于 GPU 并行计算技术,通过整合全球分散的 GPU 算力资源,在建设人工智能基础设施的同时,为…

Tesra超算网络AI训练的使用流程

这篇文章将会为大家详细地介绍一下,Tesra超算网络AI训练的使用流程。 ​在使用Tesra超算网络进行AI模型训练前,需要完成官网注册和开发者钱包注册。 ​一:官网注册 ​Tesra超算网络的官网地址: http://supernet.tesra.io &…

Tesra平台训练数据(没有足够强大的显卡情况下使用云端跑代码)(一)

本地训练或者跑一些代码,比如用深度学习处理行人识别的视频,比较慢,又没有足够的钱换硬件啥的(比如说博主,穷的一塌糊涂,没有钱配好的电脑),这时候考虑用一些算力平台来跑代码。 博主…

TESRA旗下InFlex计算平台使用流程

​这篇文章将会为大家详细地介绍一下,TESRA旗下InFlex计算平台的使用流程。 ​在使用InFlex计算平台训练前,需要完成**注册**。 ​一、注册 InFlex计算平台的官网地址: 注册登录 网址:https://www.tesra.cloud/ 使用手机号码注…

tesra内测阶段在线GPU的使用

官网是: https://www.tesra.org 注册个账号即可 ##############算力券兑换#&#xf…

2020年2月12日学习记录

今天学习了: 1.c#入门经典—成员定义和其他成员主题 2.计算机三级数据库技术—其他查询操作 3.计算机网络自顶向下第四章网络层第一遍—路由选择算法、路由选择层次 4.计算机组成课程第七章—操作码 地址码内容 5. 啊哈算法 快速排序实现 6.CSAPP英文版十页 —十…

10进制数转换为16位二进制数

写在前面: 题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考&…

vue 实现12个月的平铺式日历插件

实现的基本样式如下&#xff1a; 使用方法 1、安装插件 npm install vue-material-year-calendar --save2、导入插件 import YearCalendar from vue-material-year-calendar3、代码实现 <template><YearCalendarv-model"year":activeDates.sync"…

【LeetCode刷题】二月汇总篇

学习总结 文章目录 学习总结一、时间安排task01 数组task02 链表task03 栈task04 字符串task05 树task06 位运算task07 双指针task08 搜索task09 排序task10 动态规划task11 分治task12 哈希表 一、时间安排 阿里云天池leetcode训练营&#xff08;二月&#xff09;。 task01 数…

2019年9月全国计算机二级准考证打印,2019年9月计算机二级准考证打印入口公布...

2019年下半年全国计算机考试已经进入紧张备考中&#xff0c;在9月21日正式开考&#xff0c;请考生提前打印准考证&#xff0c;目前各市的准考证打印网址开通&#xff0c;考生可以自行打印。如果是在报名点报名的考生&#xff0c;可在报名点领取&#xff0c;下面我们来看各省打印…

MODIS16天数据月合成/季合成

1.MRT重投影、转换格式 重投影后命名为MOD13Q1.A2019129.250m_16_days_NDVI.tif 2.重命名 5月单独一期&#xff0c;即序号为129的一期。&#xff08;欢迎探讨&#xff09; 首先去掉前面的MOD13Q1. 再将001.250替换为0101 将129.250替换为0501 得到A20200501_16_days_NDVI.ti…

plc里的二进制 用计算机,如何理解二进制和十六进制(电工入门PLC知识普及)...

如何理解二进制和十六进制(电工入门PLC知识普及)三菱PLC直观易懂&#xff0c;便于入门&#xff01;&#xff01;而欧系的西门子PLC太复杂&#xff0c;不适合入门&#xff01;&#xff01;这句话已经成了很多人的口头语&#xff0c;但是&#xff0c;到底是为什么呢&#xff1f;&…

计算机二级报名时间2020年3月山西,2020年3月山西计算机二级报名及考试时间

摘要&#xff1a; 2020年3月山西计算机二级报名及考试时间为你介绍根据山西省2020年上半年全国计算机等级考试网上报名公告可知。山西2020年3月计算机二级报名及考试时间已经公布&#xff0c;以下是小编为大家整理的相关内容希望对大家有所帮助。 山西计算机二级报名及考试时间…

7月14日第壹简报,星期四,农历六月十六

7月14日第壹简报&#xff0c;星期四&#xff0c;农历六月十六1. 天链二号03星成功发射&#xff0c;中国第二代数据中继卫星系统正式建成。2. 微博、微信&#xff1a;将整治用谐音字、变体字等“错别字”发布、传播传播不良信息。3. 官方&#xff1a;严禁在就业上歧视曾经新冠核…