泛型的意义与通配符理解

一、泛型的含义

泛型是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(某个元素)

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值