我有一些代码:
class MyClass<RCM>
private List<RCM> allPreExistingConfigsForCodes() {
if(this.allCodesForThisType.size() == 0)
return new ArrayList<RCM>(0);
IntelliJ告诉我应该用new ArrayList<RCM>
替换new ArrayList<>
这意味着什么?
答案 0 :(得分:40)
来自Java Tutorials generics lesson:
在Java SE 7及更高版本中,您可以替换所需的类型参数 使用一组空类型调用泛型类的构造函数 参数(
<>
),只要编译器可以确定或推断出 从上下文中键入参数。这对尖括号<>
是 非正式地称为钻石。例如,您可以创建实例Box<Integer>
的{{1}}声明如下:
Box<Integer> integerBox = new Box<>();
答案 1 :(得分:10)
您使用的是Java 7吗?如果是这样,它正试图利用新的“钻石符号”。