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

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

阅读 3.5k
3 个回答

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

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

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

getType1List()这个方法的返回值没有带泛型

getType1List()返回类型是什么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏