2015-04-17 2 views
7

Можно ли написать следующее?Набор без указанного типа данных

Set<Integer> integs = new HashSet<>();

< Внутри>, это прекрасно, чтобы оставить его как пустой?

+2

Да, алмазный оператор '<>' будет вызывать '' как общий тип ссылочного типа. Теперь, где этот дубликат ... – Pshemo

+0

Также см. Http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7 – Radiodef

+1

Это уже было отвечено здесь: http://stackoverflow.com/questions/8660202/what-does-mean-for-java-generics –

ответ

3

Начиная с Java 7, компилятор выводит тип данных хэш-набора без необходимости его записи дважды.

Обратите внимание, что существуют некоторые сценарии, в которых компилятор может не вывести тип, поэтому вы можете получить ошибки компиляции для более сложных сценариев.

Больше этого here.

2

Да, если вы используете Java 7 или выше, как описано в documentation

Вы можете заменить аргументы типа, необходимые для вызова конструктора обобщенного класса с пустым набором параметров типа (<>), пока компилятор может вывести аргументы типа из контекста. Эта пара угловых кронштейнов неофициально называется алмазом .

Смежные вопросы