java泛型 <? super Number>难道不是规定了只能添加Number的超类吗?
答案:1 悬赏:0 手机版
解决时间 2021-11-13 11:37
- 提问者网友:自食苦果
- 2021-11-13 00:30
java泛型 <? super Number>难道不是规定了只能添加Number的超类吗?
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-11-13 01:45
Number的超类不太好想,我用动物给你解释
List super Dog> dogs = new ArrayList();
dogs.add(new 斑点狗());//可以,斑点狗is a dog,可以往里加
dogs.add(new Dog());//可以,不管什么狗,都可以往里加
dogs.add(new Animal());//不可以,可能是只猫,不能往狗队列里加!
回到你的问题,不管这个list实际上是什么,Number或者Number的任何子类对象,都可以添加进去,没有任何问题。追问你这不是加子类去了吗这是通配符超类限制呀追答你的问题不就是,为啥子类可以加么追问这个通配符指的是加Number的超类追答这意味着,它是Number的任意一级的超类,也包括Number自身
所以这样的list可以添加Number的对象,或者任意Number子类的对象,有什么问题嘛?
List super Dog> dogs = new ArrayList
dogs.add(new 斑点狗());//可以,斑点狗is a dog,可以往里加
dogs.add(new Dog());//可以,不管什么狗,都可以往里加
dogs.add(new Animal());//不可以,可能是只猫,不能往狗队列里加!
回到你的问题,不管这个list实际上是什么,Number或者Number的任何子类对象,都可以添加进去,没有任何问题。追问你这不是加子类去了吗这是通配符超类限制呀追答你的问题不就是,为啥子类可以加么追问这个通配符指的是加Number的超类追答这意味着,它是Number的任意一级的超类,也包括Number自身
所以这样的list可以添加Number的对象,或者任意Number子类的对象,有什么问题嘛?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯