Java Collection <object>或Collection <! - ? - > </object>

时间:2011-08-05 03:58:45

标签: java

我尝试使用List而不是List

List<?> list = new ArrayList<Integer>();
...
list.add(1); //compile error

我做错了什么以及如何为Integer投入新价值?  也许我会在我的项目中使用List?

4 个答案:

答案 0 :(得分:10)

List<?>表示某种类型的列表,但我们不知道哪种类型。您只能将正确类型的对象放入列表中 - 但由于您不知道类型,因此无法将任何内容放入此类列表中null除外)。

除了将变量声明为List<Integer>之外,没有办法解决这个问题。

答案 1 :(得分:4)

List<Integer> list = new ArrayList<Integer>();

通用类型 始终 必须相同。

答案 2 :(得分:1)

List<Integer> list = new ArrayList<Integer>();
...
list.add(1);

答案 3 :(得分:1)

List<?> list = new ArrayList<Integer>();

?表示某种类型,您必须将Type指定为Integer。所以正确的语法是:

List<Integer> list = new ArrayList<Integer>();