Это своего рода следующий вопрос из обсуждения:
Почему оператор ромба не работает внутри addAll () в Java 7?
Из Руководства по Java,
http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html
Обратите внимание, что ромб часто работает в вызовы методов; однако для большей ясности рекомендуется использовать ромб в первую очередь для инициализации переменной, в которой он объявлен
Итак, меня немного смущает первая строка. Когда алмаз работает в вызовах методов?
Более подробное объяснение того, как работает алмазный оператор, можно найти здесь:
И из этого я попробовал следующее, которое отлично работает:
Дайте, что у меня есть:
private static class Box{
public Box(T t){}
}
static void f(Box box){}
вызов вида следующее прекрасно компилируется:
f(new Box<>(new Integer(10)));
Параметр типа при вызове конструктора в вызове метода f ()
выше выводится из аргумента конструктора (то есть Integer
).
Это то, что имеется в виду, когда в руководстве говорится
Обратите внимание, что алмаз часто работает в вызовах методов
Если нет, может ли кто-нибудь предоставить пример, где алмаз работает в методе позвонить?