泛型擦除是什么意思_泛型类和泛型方法的区别

泛型擦除是什么意思_泛型类和泛型方法的区别在严格的泛型代码里,带泛型声明的类总应该带着类型参数。但为了与老的Java代码保持一致,也允许在使用带泛型声明的类时不指定实际的类型。如果没有为这个泛型类指定实际的类型,此时被称作rawtype(原始类型),默认是声明该泛型形参时指定的第一个上限类型。当把一个具有泛型信息的对象赋给另一个没有泛型信息的变量时,所有在尖括号之间的类型信息都将被扔掉。比如一个List类型被转换为List,则该List对集合元素的类型检查变成了泛型参数的上限(即Object)。上述规则即为泛型擦除,可以通过下面代码进一步

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在严格的泛型代码里,带泛型声明的类总应该带着类型参数。但为了与老的Java代码保持一致,也允许在使用带泛型声明的类时不指定实际的类型。如果没有为这个泛型类指定实际的类型,此时被称作raw type(原始类型),默认是声明该泛型形参时指定的第一个上限类型。

当把一个具有泛型信息的对象赋给另一个没有泛型信息的变量时,所有在尖括号之间的类型信息都将被扔掉。比如一个 List 类型被转换为List,则该List对集合元素的类型检查变成了泛型参数的上限(即Object)。

上述规则即为泛型擦除,可以通过下面代码进一步理解泛型擦除:

List<String> list1 = ...;
List list2 = list1; // list2将元素当做Object处理

从逻辑上来看,List 是List的子类,如果直接把一个List对象赋给一个List对象应该引起编译错误,但实际上不会。对泛型而言,可以直接把一个List对象赋给一个 List 对象,编译器仅仅提示“未经检查的转换”

上述规则叫做泛型转换,可以通过下面代码进一步理解泛型转换:

List list1 = ...;
List<String> list2 = list1; // 编译时警告“未经检查的转换”
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179206.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 正交投影矩阵举例_正交投影矩阵的性质

    正交投影矩阵举例_正交投影矩阵的性质来自:https://blog.csdn.net/tengweitw/article/details/41174555二维投影上图表示的是,向量b在向量a上的投影。显然有例如以下表达式:当中,P为投影矩阵,由P的表达式能够看出,它具有例如以下性质:三维投影    三维投影,就是将一个向量投影到一个平面上。同上面一样,如果是将b向量投影到平面上的p向量,则有表达式:…

  • JS获取当前时间(精确到秒)「建议收藏」

    JS获取当前时间(精确到秒)「建议收藏」js获取当前日期currentDate(){vard=newDate();varyear=d.getFullYear();varmonth=d.getMonth();month=month+1>12?1:month+1;month=month>9?month:”0″+month.toString();var

  • 系统蓝屏代码

    系统蓝屏代码

  • 批量下载ts视频文件

    批量下载ts视频文件第一步使用chrome按F12进入开发模式,拖动视频进度条到视频结束;然后找到.m3u8以结尾的文件并保存为文本文件。第二步点开查看里面是否存在如下以ts结尾的文件内容……/20180802/eXLFMdky/800kb/hls/QV7N1B14122999.ts/20180802/eXLFMdky/800kb/hls/QV7N1B14123000.ts…

  • Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)

    Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar链接:https://pan.baidu.com/s/1gci6aSIFhEhjY8F48qH39Q提取码:l289复制这段内容后打开百度网盘手机App,操作更方便哦JDK国国内官网下载地址:https://www.oracle.com/cn/java/technologies/javase-downloads.htmlJDK8国内官网下载地址:https://www.oracle.com/cn/j

  • think in java interview-高级开发人员面试宝典(八)

    think in java interview-高级开发人员面试宝典(八)JavaIO流的复习。大家平时J2EE写多了,JAVA的IO操作可能都已经生疏了,面试时如果来上这么几道,是不是有点”其实这个问题很简单,可是我就是想不起来“的感觉啊?呵呵!JAVA的IO操作太多,我这边挑腾迅,盛大和百度的几道面试题,并整理出答案来供大家参考。InputFromConsole这个最简单不过了,如果你不复习的话,嘿嘿,还真答不出,来看:packageorg.sky.io;p

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号