Что означает <> для дженериков java?
У меня есть немного кода:
class MyClass<RCM>
private List<RCM> allPreExistingConfigsForCodes() {
if(this.allCodesForThisType.size() == 0)
return new ArrayList<RCM>(0);
IntelliJ говорит мне, что я должен заменить new ArrayList<RCM>
на new ArrayList<>
, что это значит?
Ответы
Ответ 1
Из урока уроков Java Tutorials:
В Java SE 7 и более поздних версиях вы можете заменить аргументы типа, необходимые для вызывать конструктор универсального класса с пустым набором типов arguments (<>
) до тех пор, пока компилятор может определить или вывести введите аргументы из контекста. Эта пара угловых скобок <>
, является неофициально назвали алмаз. Например, вы можете создать экземпляр из Box<Integer>
со следующим утверждением:
Box<Integer> integerBox = new Box<>();
Ответ 2
Используете ли вы Java 7? Если это так, он пытается воспользоваться новой "нотной записью".
http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html#type-inference-instantiation