首页 > 开发 > JAVA > 正文

java的List与List<object>什么区别?

2017-09-07 09:05:25  来源:网友分享

项目中需要用一个List接多种List<T>
这样写List<Object> list = getType1List();编译不通过,提示获取的类型与指定的类型不匹配。
但是换成List list = getType1List();就能编译通过了。这是为什么呢?

解决方案

List<Object>不行因为 List<T>对T是不变 (协变/逆变/不变的不变)的

List (没有<>)是个raw type, 允许更类型不安全的写法, 不建议在现代代码中使用

建议引入类型变量来解决, 或者用List<?> list