¿Por qué es incorrecto proporcionar un parámetro de tipo en el constructor de una clase genérica (Java)?

Estoy aprendiendo sobre genéricos en Java de un libro de texto, donde habla sobre una claseGenericStack<E> implementado con unArrayList<E>.

Como para crear una pila de cadenas, usa

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

o

GenericStack<String> new GenericStack<>()

por lo tanto no debería el constructor deGenericStack ser definido comopublic GenericStack<E>()opublic GenericStack<>()? La respuesta es no. Debería definirse comopublic GenericStack().

¿Por qué es esto? Obviamente, el constructor puede inferir fácilmente el tipo de la declaración de clase, pero dada la verbosidad de Java, estoy un poco confundido por qué el<E> o simplemente el<> El formalismo se ha eliminado por completo aquí.

Respuestas a la pregunta(3)

Su respuesta a la pregunta