我尝试使用List而不是List
List<?> list = new ArrayList<Integer>();
...
list.add(1); //compile error
我做错了什么以及如何为Integer投入新价值? 也许我会在我的项目中使用List?
答案 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>();