据我了解 List<?>
定义为某些特定但未知类型的列表。那么无论这个 List
的参数类型是什么,它应该扩展 Object
因为在 Java 中你不能拥有任何不扩展 Object
的类型。那么为什么下面的代码没有被编译呢?它是如何违反 listObj
的不变量的?
List<?> listObj = returnSomeList();
listObj.add(new Object()); //Why does this not work ?
最佳答案
List<?> listObj
可以指向可以存储不同类型对象的任何类型的List。
您认为,让它添加任何对象是否安全,例如
List<?> listObj = new ArrayList<String>();
listObj.add(new Object());
关于java - 为什么我不能将 Object 类型的对象添加到 List<?> 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045034/