2015-07-03 9 views

ответ

1

Первый пример представляет собой обобщенный тип. Второй пример - параметризованный тип. Это разные вещи.

  • Общий тип - это определение типа, параметризованного по типам. Он может быть вызван путем предоставления аргументов типа этим параметрам типа.
  • Параметрированный тип - это вызов типичного типа с аргументами типа, независимо от того, являются ли эти аргументы типа или подстановочными.

Нижняя граница параметра типа универсального типа не может быть никакой пользы . Поэтому это не «вещь» на Java.

Однако второй пример означает: «любая параметризация типа Gen<T>, где аргумент типа является супертипом числа». Он полезен, поскольку он допускает полиморфность типичных типов.

Они могут быть фактически ограничены в использовании, предоставляя "restricted instantiation", но не были сочтены полезными для разрешения.

+0

'Полезно, поскольку он допускает полиморфность общих типов', есть ли другое использование параметризованного типа? –

+0

@kevingomes. Подстановочные параметризованные типы относятся к полиморфизму. 'Gen ' не присваивается совместимым с 'Gen ', но 'Gen ' есть. Ограничение этих подстановочных знаков с верхними/нижними границами позволяет ограничить полиморфный набор, что полезно, поскольку оно создает возможность иметь параметры ввода/вывода. –

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