Welchen Vorteil hat ein generischer Konstruktor für eine nicht generische Klasse? Java-Spezifikation ermöglicht die folgende:Vorteil von generischen Konstruktoren
class NonGeneric {
<T> NonGeneric() { }
...
NonGeneric ref = new <String> NonGeneric();
}
Kann man mit einem realistischen Beispiel kommen, wenn es die Typsicherheit der Klasse verbessert? Wie wäre es besser als die Verwendung von Generic in erster Linie.
Ich verstehe, dass Java-Designer die Konstruktoren mehr mit Methoden konsistent sein wollten. Da Konstrukteure können Nebenwirkungen haben, generische Konstrukteure Generika verwenden können einige Parameter, deren Referenzen werden nicht beibehalten mutieren, wie in
<T> NonGeneric(T obj, List<T> list) {
list.add(obj);
// Don't hold a reference to list
}
Ja, es erlaubt generische Methoden, durch Konstruktoren ersetzt zu werden (aber warum möchten Sie?). Ich habe noch nie einen in freier Wildbahn gesehen. Für mein Geld ist es eine Komplikation, auf die die Sprache hätte verzichten können (wie C# später, als es seine Version von Java-Generika einführte). –