栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

泛型的意义与通配符理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

泛型的意义与通配符理解

一、泛型的含义

泛型是JDK1.5出现的一种新特性,主要用来解决对象类型不确定的问题。

  其中泛型可以用在类、接口、方法中,分别称为泛型类、泛型接口、泛型方法。

 1.泛型类(具有一个或者多个泛型变量的类)

2.泛型接口(具有一个或者多个泛型变量的接口)

 

3.泛型方法(具有一个或者多个泛型变量的方法)

核心目标:解决容器类型在编译时安全检查的问题

比如这个我们规定了要传入String,但是代码中只是传入了int,所以会报错,直接在编译期间报错。

只是在编译期才有作用,运行期就会失去作用,我们将两个不同泛型的同一类进行编译为.class会发现他们里面就不含有泛型的信息了。

二、通配符

2.1 ?通配符

如果说想传入的参数是继承的类,我们可以用?,比如下面:

用上?就可以传入Integer的父类Number了。但是string在编译器也可以传入,运行的时候就会出现无法进行转化类型。

所以为了防止这种太自由放纵,因此来上限界或下限界

2.2上限界 ? extend E

刚才上面string就马上报错了。因为我们这边把上限界 限定到Number. 

 2.3 下限界 ? super E

Integer是Number的子类,因此Number可以过,但是string就不行。

如果改为Object的话,Number是Object的子类,因此Number也会报错。

四、泛型方法

泛型方法可不受泛型类的约束,可以参入任何参数,但是泛型类的其他方法就不行,必须按照泛型类的进行约束。

 

 从这两个图可以看出,handlSomething是一般方法必须受到String的约束,但是printArray不受到String的约束,可以任意传入类型。

 五、常用字符的含义

比较常见的通配符号:T,K,V,?。实际上A~Z都可以,只是大家习惯这样叫。

1.“?”通常代表不确定的JAVA类型

2.“T”表示某个具体的Java类型

3.“K”代表java键值对中的Key

4.“V”代表java键值中的Value

5.“E”代表Element(某个元素)

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号