Ich lerne derzeit Generika und habe es schwer, einige Aspekte von ihnen zu verstehen. Ich habe das Gefühl, etwas übersehen zu haben, daher klingt die Frage vielleicht dumm.Geben Sie Argumente in Sub-Klasse-Deklarationen ein
Ich verstehe, dass es:
- Platzhalter, bekannt als 'formalen Parameter des Typs'.
- Tatsächliche 'Typ Argumente'.
Hier ist ein Stück Beispielcode I mit Generika und Verfahren Verkettungs haben, das funktioniert:
class Clothing <T> {
String material;
String color;
T setMaterial (String material) {
this.material = material;
return (T) this;
}
T setColor (String color) {
this.color = color;
return (T) this;
}
}
class Jeans extends Clothing <Jeans> {
}
class Pants extends Clothing <Pants> {
}
class Executor {
public static void main(String[] args){
Jeans jeansPair = new Jeans().setMaterial("cotton").setColor("green");
}
}
Das Problem, das ich nicht verstehe, ist, warum der Typ arugment wie Jeans und Hosen werden in Unterklassen-Deklarationen anstelle von Instanziierungen wie die in der Hauptmethode bereitgestellt.
Ich würde mich freuen, wenn Sie einen Link zu dieser Regel - ich habe eine Menge Informationen wie beschränkte Parameter, rohe Typen, löschen etc. aber nicht ganz gefunden, was ich gesucht habe.
Dank
Dies ist kurios wiederkehrendes generisches Muster oder Template-Muster in C++ https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern – flakes
Sie können diesen Beitrag auch http: // stackoverflow betrachten.com/q/26762955/3280538 – flakes
Dies ist auch eine Möglichkeit zu ermöglichen, eine abstrakte Basisklasse Methodenverkettung durchführen http://www.unquietcode.com/blog/2011/programming/using-generics-to-build-fluent-apis -in-java/ – flakes