Warum ist es falsch, Typparameter im Konstruktor einer generischen Klasse (Java) anzugeben?

Ich lerne gerade etwas über Generika in Java aus einem Lehrbuch, in dem es um eine Klasse gehtGenericStack<E> implementiert mit einemArrayList<E>.

Seit dem Erstellen eines Stapels von Zeichenfolgen verwenden Sie

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

ode

GenericStack<String> new GenericStack<>()

daher sollte der Konstruktor von @ nicGenericStack definiert werden alspublic GenericStack<E>(), oderpublic GenericStack<>()? Die Antwort ist nein. Es sollte als @ definiert werdpublic GenericStack().

Warum ist das? Natürlich kann der Konstruktor den Typ leicht aus der Klassendeklaration ableiten, aber angesichts der Ausführlichkeit von Java bin ich etwas verwirrt, warum das<E> oder einfach das<> Formalismus ist hier komplett beseitigt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage