现在有一个新的需求,没有String类型成绩了,但是成绩依然可能是整数,也可能是小数,这是我们不希望用户将泛型指定为除数字类型外的其他类型,我们就需要使用到泛型的上界定义:
上界👇只能使用其本身或子类

继承自Number类的就符合要求👇
![]()

报错👇

也可以创建对象这样设置,上界必须是Integer👇

下界👇
下界不能使用在泛型方法中,在这用👇

这里是隐式类型转换为Object👇

不能使用其子类👇下界只能用他的父类或他本身

Number为上界👇👇👇

快速获取类型var👇

上界Number获取的是Number👇


强转子类Integer👇

同理Integer为上界👇👇👇


本质上还是 ?extends Number, 不能确定是Number的类及其哪个子类,这样子去setValue,无法确定是否是这个类型,虽然他确实是Integer👇👇



大概就是无法确定是否能够接受,例如父类无法接受子类。
限定下界就没有上述的问题👆👇👇👇下界的话
