网易首页 > 网易号 > 正文 申请入驻

工程师面试之泛型系列:泛型概念详解,深入分析泛型的使用方式

0
分享至

Java中的泛型

  • 泛型的基本概念
  • 泛型的使用
  • 泛型类
  • 泛型接口
  • 泛型通配符
  • 泛型方法
  • 泛型方法的基本用法
  • 类中的泛型方法
  • 泛型方法与可变参数
  • 静态方法与泛型
  • 泛型方法总结
  • 泛型的上下边界
  • 泛型数组

泛型的基本概念

  • 泛型: 参数化类型参数:定义方法时有形参调用方法时传递实参参数化类型: 将类型由原来的具体的类型参数化,类似方法中的变量参数类型定义成参数形式, 可以称为类型形参在使用或者调用时传入具体的类型,可以称为类型实参
  • 泛型的本质是为了参数化类型在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在:类 - 泛型类接口 - 泛型接口方法 - 泛型方法

可以发现,在编译过后,程序会采取去泛型化措施。也就是说,Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦除,并且在对象进入和离开方法的边界处添加类型检查和类型转换方法

  • 泛型类型在逻辑上可以看成多个不同的类型,实际上都是相同的基本类型

泛型的使用

  • 泛型有三种使用方式:泛型类泛型接口泛型方法

泛型类

  • 泛型类: 泛型类型用于类定义中通过泛型类可以完成对一组类的操作对外开发相同的接口最典型的就是各种容器类:ListSetMap
  • 泛型类中不一定要传入泛型类型的实参:如果传入泛型实参,会根据传入的泛型实参做相应的限制,此时泛型才会起到本应起到的限制作用如果不传入泛型类型的实参,在泛型类中使用泛型的方法或者成员变量的定义可以为任何类型
  • 泛型的类型参数只能是类型,不能是简单类型
  • 不能对确切的泛型类型使用instanceof操作,编译时会出错

泛型接口

  • 泛型接口与泛型类的定义及使用基本相同
  • 泛型接口常常被用在各种类的生产器中

泛型通配符

Integer是number的一个子类 ,Generic< Integer > 与Generic< number > 实际上是相同的一种类型由此,产生如下问题:在使用Generic< number > 作为形参的方法中,能否使用Generic< Integer > 的实例传入?在逻辑上类似于Generic< number >和Generic< Integer >是否可以看成是具有父子关系的泛型类型呢?

由此可以看到Generic< Integer >不能看作是Generic< Number >的子类.

  • 由此可见:同一种泛型可以对应多个版本,因为参数类型是不确定的不同版本的泛型类型实例是不兼容的
  • 为了解决这样的问题,又不能为了定义一个新的方法来处理Generic< Integer >,这与Java中多态的理念违背.因此,需要一个在逻辑上可以表示同时是Generic< Integer >和Generic< Number >父类的引用类型.这样的类型就是类型通配符:
  • 使用通配符表示泛型
  • 类型通配符一般使用 ? 代替具体的类型实参:此处的 ?类型实参, 而不是类型形参.和Number,String,Integer一样,都是一种实际的类型可以把 ? 看作是所有类型的父类,是一种真实的类型
  • 类型通配符的使用场景:当具体类型不确定的时候,这个通配符就是 ?当操作类型时,不需要使用类型的具体功能,只使用Object类中的功能,那么可以使用 ? 通配符来表示未知的类型

泛型方法

  • 泛型类: 在实例化类的时候指明泛型的具体类型
  • 泛型方法: 在调用方法的时候指明泛型的具体类型

类中的泛型方法

  • 泛型方法可以出现在任何地方任何场景中进行使用
  • 但是,当泛型方法出现在泛型类中时,情况比较特殊

泛型方法与可变参数

  • 泛型方法与可变参数

静态方法与泛型

  • 注意在类中的静态方法使用泛型:
  • 静态方法无法访问类上定义的泛型
  • 如果静态方法操作的引用数据类型不确定的时候,必须要将泛型定义在方法上
  • 如果静态方法要使用泛型的话,必须将静态方法定义成泛型方法

泛型方法总结

  • 泛型方法能使方法独立于类而产生变化,使用原则:
  • 无论何时,如果能做到,就尽量使用泛型方法
  • 如果使用泛型方法将整个类泛型化,就应该使用泛型方法
  • 对于一个static方法,无法访问泛型类型的参数.如果static方法要使用泛型,就必须使之成为泛型方法

泛型的上下边界

  • 在使用泛型的时候,可以为传入的泛型类型实参进行上下边界的限制:比如: 类型的实参只准传入某种类型的父类或者某种类型的子类
  • 为泛型方法添加上边界,即传入的类型实参必须是指定类型的子类型
  • 为泛型类添加上边界,即类中泛型必须是指定类型的子类型
  • 在泛型方法中添加上下边界限制时,必须在权限声明与返回值之间的< T >上添加上下边界
  • 从上面可以看出 : 泛型的上下边界添加,必须与泛型的声明在一起

泛型数组

  • 在Java中,不能创建一个确切的泛型类型的数组
  • 数组的类型不可以是类型变量,除非是采用通配符的方式: 因为对于通配符的方式,最后取出数据是要做显式的类型转换的

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
多名院士呼吁停止食用,比肥肉还伤血管,转告父母,趁早撤下餐桌

多名院士呼吁停止食用,比肥肉还伤血管,转告父母,趁早撤下餐桌

39健康网
2026-06-28 18:31:08
41岁C罗生物年龄28岁!别光看他700万名表,真正烧钱的是逆龄科技

41岁C罗生物年龄28岁!别光看他700万名表,真正烧钱的是逆龄科技

疯狂小菠萝
2026-06-27 17:20:37
天津外教长期逃票,学校疑曝光,地铁人员视而不见,评论区太愤怒

天津外教长期逃票,学校疑曝光,地铁人员视而不见,评论区太愤怒

谭谈社会
2026-06-28 16:54:02
浙江皮鞋大亨破产10年,儿子一天突然打电话:意大利的房子卖吗?

浙江皮鞋大亨破产10年,儿子一天突然打电话:意大利的房子卖吗?

白云故事
2025-06-06 21:20:03
“只有学渣家长会这样”,母亲在考场前失态,网友:你到底哭啥?

“只有学渣家长会这样”,母亲在考场前失态,网友:你到底哭啥?

泽泽先生
2026-06-22 19:49:50
日本没想到,印度也没料到,当今中国已经成为全世界的骄傲

日本没想到,印度也没料到,当今中国已经成为全世界的骄傲

趣味萌宠的日常
2026-06-28 14:12:19
人口流失压力来了!巴中发布学子劝返倡议书广泛转发,引发热议

人口流失压力来了!巴中发布学子劝返倡议书广泛转发,引发热议

火山詩话
2026-06-26 10:05:57
美媒晒3方交易方案:詹姆斯3年5830万重返骑士 湖人连获墨菲+阿伦

美媒晒3方交易方案:詹姆斯3年5830万重返骑士 湖人连获墨菲+阿伦

锅子篮球
2026-06-28 12:40:30
骂雷军的小女孩!

骂雷军的小女孩!

闲侃闲侃
2026-06-28 10:14:11
WTT美国大满贯战报!国乒两人资格赛出局;王楚钦王曼昱即将登场

WTT美国大满贯战报!国乒两人资格赛出局;王楚钦王曼昱即将登场

莼侃体育
2026-06-28 18:58:18
升级索博!利物浦锁定世界杯顶级中场,1 亿巴西核心能力碾压

升级索博!利物浦锁定世界杯顶级中场,1 亿巴西核心能力碾压

一隅非生
2026-06-28 08:26:21
瞒不住了!国家在北京布下惊天大局,北京真正的王牌正在悄悄崛起

瞒不住了!国家在北京布下惊天大局,北京真正的王牌正在悄悄崛起

混沌录
2026-06-27 00:01:02
真子公主美国素颜出街,褪去皇室光环随性自在

真子公主美国素颜出街,褪去皇室光环随性自在

述家娱记
2026-06-26 13:53:22
瞒不住了,伊朗反击效果显现,美军核心基地报废,大批人员紧急撤离

瞒不住了,伊朗反击效果显现,美军核心基地报废,大批人员紧急撤离

健身狂人
2026-06-28 16:20:16
32强归位,伊朗反复6次被戏耍终出局,阿队:是奥地利先不讲武德

32强归位,伊朗反复6次被戏耍终出局,阿队:是奥地利先不讲武德

我就是一个说球的
2026-06-28 12:34:06
曝八村垒最可能离开湖人!马刺篮网有意签下他:或搭档文班冲冠

曝八村垒最可能离开湖人!马刺篮网有意签下他:或搭档文班冲冠

罗说NBA
2026-06-28 06:11:26
40岁保姆:拿着雇主的高工资提供特殊服务,老公得知后和我离婚了

40岁保姆:拿着雇主的高工资提供特殊服务,老公得知后和我离婚了

孢木情感
2026-06-28 10:35:07
谁能抵挡住张馨予的盛世美颜,李晨真是错过了

谁能抵挡住张馨予的盛世美颜,李晨真是错过了

娱你同欢
2026-06-18 23:07:07
难以置信,北京协和证实:40岁后男性最优运动,并非跑步撸铁

难以置信,北京协和证实:40岁后男性最优运动,并非跑步撸铁

华庭讲美食
2026-06-21 15:26:10
美股近一个月触发7次,“兴登堡预兆”有多准?A股准确率高达92%!

美股近一个月触发7次,“兴登堡预兆”有多准?A股准确率高达92%!

华尔街见闻官方
2026-06-28 17:02:20
2026-06-28 19:56:49
攻城狮Chova
攻城狮Chova
一位攻城狮的自我修养
98文章数 28关注度
往期回顾 全部

科技要闻

DeepSeek最新论文:如何让大模型跑得更快

头条要闻

李在明发文批韩国队:把无能之辈放到指挥位置是失败

头条要闻

李在明发文批韩国队:把无能之辈放到指挥位置是失败

体育要闻

韩国可算确定被淘汰了

娱乐要闻

曾沛慈拿下《乘风2026》年度总冠军

财经要闻

两只股票撑起的韩国股市,半年熔断 33 次

汽车要闻

搭载华为乾崑六件套 东风奕派M8预售19.98万起

态度原创

亲子
教育
艺术
数码
军事航空

亲子要闻

肠道真菌菌群紊乱增加儿童过敏风险

教育要闻

全面发展,从来不是成绩的敌人

艺术要闻

23幅 张文惠风景油画选

数码要闻

机械师GTR迷你主机新增“R7 255H + 16G + 1T”规格,4699元

军事要闻

特朗普又发文威胁:伊朗将不复存在

无障碍浏览 进入关怀版