Что такое явное указание аргумента типа?

Гуглил что это, но конкретного определения нету, хотя в целом понятно. Но как можно ответить на собеседовании и какие примеры можно привести, если спросят?


Ответы (1 шт):

Автор решения: Roman Konoval

Очевидно вопрос по обобщенным типам (т.е. generic-ам).

Имеется ввиду, что есть два способа использовать обобщенные типы: явное указание аргумента типа и неявное указание аргумента типа.

Неявное указание

Во в большинстве случаев, компилятор сам может вывести тип и явное указание не нужно:

List<Integer> list = new ArrayList<>();
Optional<String> string = Optional.of("abc")

Явное указание

List<Integer> list = new ArrayList<Integer>();
Optional<String> string = Optional.<String>of("abc")

В этих простых примерах, явное указание аргумента обобщенного типа не нужно. Но в некоторых ситациях, может быть неоднозначность и компилятору нужна подсказка.

→ Ссылка