为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个java泛型的问题

请教一个java泛型的问题

哔哔one 2019-05-24 15:56:22
有如下代码:方法test参数是需要C类,但是因为B类继承C,所以我传B是OK的。publicclassA{publicstaticvoidmain(String[]args){Bb=newB();test(b);}privatestaticvoidtest(Cc){}}classBextendsC{}classC{}但是如下代码却不行,不理解?importjava.util.ArrayList;importjava.util.List;publicclassA{publicstaticvoidmain(String[]args){Listb=newArrayList();test(b);}privatestaticvoidtest(Listc){}}classBextendsC{}classC{}这时候会报错:test(java.util.List)inA cannotbeappliedto(java.util.List) 实在不理解,请大家指教。如果我就要传集合,有什么办法吗?
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

参数修改为
privatestaticvoidtest(Listc){
}
解决你的问题。
为什么直接类可以:
这是普通的继承关系,自然没问题
为什么集合不可以:
这是类型转换,是两码事。
                            
查看完整回答
反对 回复 2019-05-24
?
三国纷争

TA贡献1804条经验 获得超7个赞

这种情况下应该这样声明:
privatestaticvoidtest(Listc){}
关于这个你可以参考一下这篇知乎回答。
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 516 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信