程序人生

Java泛型和泛型接口

2023-03-06  本文已影响0人  为自己代颜_

泛型的好处就是:
 适用于多种数据类型执行相同的代码
 泛型中的类型在使用时指定,不需要强制类型转换

image.png image.png image.png

限定类型变量


image.png

静态域不可引用T变量 因为静态域先于构造方法执行


image.png image.png

// super规定了参数的下限 只能接受苹果、水果上类(类本身 或者是超类才可以)
public void print(GenericTye<? super Apple> p){
}
但是Set写入数据的时候 只能写入红富士苹果、烟台苹果。。。(类型本身和子类类型)

// extends规定了参数的上限 只能接受红富士苹果、烟台苹果。。。(子类)
public void print(GenericTye<? extends Apple> p){
}
但是get读取数据的时候 返回下界及本身(类本身及子类类型)
总结:“上界不存,下界不取”
综上,我们就知道 “上界不存,下界不取” 的真实含义其实就是:
都是出于 安全考虑,

“?extends X” 主要用于安全地访问数据。它只用来读数据,不用来存放数据。
? super X 主要用于安全地写入数据。它只用来写入数据,不用来取出数据。
详细链接可参考:https://www.codenong.com/js2f103e6ad4e6/

上一篇 下一篇

猜你喜欢

热点阅读