项目中需要用一个List
接多种List<T>
。
这样写List<Object> list = getType1List()
;编译不通过,提示获取的类型与指定的类型不匹配。
但是换成List list = getType1List()
;就能编译通过了。这是为什么呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
像List list = getType1List()
;这种写法,是以前Java没有泛型的时候的写法,这种写法是类型不安全的,由于没有类型参数,所以往里面放什么类型都是可以编译通过的。
有了泛型以后一般都是推荐用泛型来写的,使用类型参数,List<Object> list = getType1List()
;就是像这样,编译器会检查放入的类型是否和类型参数一致,不一致的话编译器会报错。