定义新的HashMap<>()时出现语法错误;或者新的ArrayList<>();

时间:2013-11-21 20:59:42

标签: java arraylist

我已将一些项目导入我的工作区。它有一些hashmaps,arraylist等。它在<>部分代码中有语法错误。

例如,数组列表的定义是ArrayList<String> bases = null;但是当创建像bases = Arraylist<>();这样的新实例时,它会出现语法错误。

我的系统上安装了jre1.7和JDK 7

5 个答案:

答案 0 :(得分:2)

bases = new ArrayList<>();

答案 1 :(得分:0)

看起来像是泛型类型的声明,但它缺少这封信。尝试用字母填充括号,并在类标题中将该字母声明为泛型类型。

答案 2 :(得分:0)

这个(<>)被称为菱形运算符(类型推断),它在1.7中被添加到Java中。在您的系统上安装Java 7是不够的,您的项目也应该使用Java,因此请使用您的ide项目设置中的Java 7。

答案 3 :(得分:0)

diamond仅由jdk7(及更高版本)支持。您已在系统上安装了jdk7。您应该确保您的IDE(eclipse?)使用jdk / jre7作为您的项目。

也可能是你问题上的拼写错误。您需要new关键字和ArrayList(大L)。

xxx = new ArrayList<>();

答案 4 :(得分:0)

如果您打算使用原始类型,请声明并分配如下:

ArrayList bases = null;
bases = new ArrayList();

如果您使用泛型和JDK7,则声明要存储的对象的TYPE,并使用菱形运算符:

ArrayList<TYPE> bases = null;
bases = new ArrayList<>();

更多信息:What is a raw type and why shouldn't we use it?