我是Java的新手,但我很喜欢它!
我正在使用NetBeans7.2,当我尝试创建像这样的ArrayList时:
ArrayList<String> list = new ArrayList<>();
NetBeans说“类型ArrayList不带参数”(这没有意义,因为我的代码很简单,接缝对Java7来说是正确的。)
此外,当我尝试导入时:
import java.util.ArrayList;
NetBeans说“已在此编译单元中定义了ArrayList”。
不再需要导入ArrayList了吗?
非常感谢!请原谅我糟糕的英语;)
编辑:这是我的完整代码(这只是一个练习)
import java.util.ArrayList;
public class ArrayList {
public static void main(String[] args) {
ArrayList<String> cores = new ArrayList<>();
cores.add("Branco");
cores.add(0, "Vermelho");
cores.add("Amarelo");
cores.add("Azul");
System.out.println(cores.toString());
System.out.println("Tamanho= " + cores.size());
System.out.println("Elemento2= " + cores.get(2));
System.out.println("Indice Branco= " + cores.indexOf("Branco"));
cores.remove("Branco");
System.out.println("Tem Amarelo?" + cores.contains("Amarelo"));
}
}
答案 0 :(得分:5)
如果将类名更改为ArrayList以外的其他名称,那么您的代码在Java7中绝对正确,使用菱形运算符(<>
)是合法的:
ArrayList<String> list = new ArrayList<>();
这背后的基本思想是,实例化泛型类的代码可以变得不那么冗长。 Java7编译器意味着自动需要什么。
Java6会抱怨并要求你按照Jon建议的方式编写它。
答案 1 :(得分:3)
你必须这样做:
ArrayList<String> myArray = new ArrayList<String>();
它应该可以正常工作!
答案 2 :(得分:1)
更改班级名称,如果您将其命名为&#34; ArrayList &#34;。