Почему неправильно указывать параметр типа в конструкторе универсального класса (Java)?

Я только изучаю дженерики в Java из учебника, где говорится о классеGenericStack<E> реализовано сArrayList<E>.

Поскольку для создания стека строк, вы используете

GenericStack<String> = new GenericStack<String>()

или же

GenericStack<String> new GenericStack<>()

поэтому не должен конструкторGenericStack определяться какpublic GenericStack<E>(), или жеpublic GenericStack<>()? Ответ - нет. Это должно быть определено какpublic GenericStack().

Почему это? Очевидно, конструктор может легко вывести тип из объявления класса, но, учитывая многословность Java, я немного озадачен, почему<E> или просто<> формализм полностью избавился здесь.

Ответы на вопрос(3)

Ваш ответ на вопрос