L
LasagneLegga
Gast
Hallo,
Ich hätte mal eine Frage zum Thema Generic, genauer gesagt:
Wo liegt der Sinn dahinter?
Bei C++ kann ich es ja noch verstehen, dort erbt nicht jede Klasse (bzw. nicht "alles"* ist eine Klasse), sodass man nicht so einfach eine Untermenge aller Typen hat.
Aber bei Java erbt alles* von Object, dazu kommt das am Ende die generischen Typen (also nach dem compilieren) afaik eh nach Object gewandelt wird, was auch der Grund ist warum man es per Hand wieder zurückkonvertieren muss (oder irre ich mich?).
Hier verstehe ich auch warum C# Generic hat, dort läuft das afaik zur RunTime ab und man sparrt sich das manuelle Konvertieren.
Wenn ich In der generischen Klasse bestimmte Methoden benutzen will die der Typ zu implementieren hat, dann nehm ich halt nicht einfach Object sondern erstelle mir ein passendes Interface.
Also warum Generic (also konkret: Arbeiten mit einem Parameter T), anstatt direkt mit Object / dem passendem Interface?
* Ich weiß das in Java die primitiven Datentypen keine Objekte sind, aber es gibt ja die entsprechendenWrapper, die afaik ja auch bei Generic benutzt werden. Man siehts nur nicht dank autoboxing.
Ich hätte mal eine Frage zum Thema Generic, genauer gesagt:
Wo liegt der Sinn dahinter?
Bei C++ kann ich es ja noch verstehen, dort erbt nicht jede Klasse (bzw. nicht "alles"* ist eine Klasse), sodass man nicht so einfach eine Untermenge aller Typen hat.
Aber bei Java erbt alles* von Object, dazu kommt das am Ende die generischen Typen (also nach dem compilieren) afaik eh nach Object gewandelt wird, was auch der Grund ist warum man es per Hand wieder zurückkonvertieren muss (oder irre ich mich?).
Hier verstehe ich auch warum C# Generic hat, dort läuft das afaik zur RunTime ab und man sparrt sich das manuelle Konvertieren.
Wenn ich In der generischen Klasse bestimmte Methoden benutzen will die der Typ zu implementieren hat, dann nehm ich halt nicht einfach Object sondern erstelle mir ein passendes Interface.
Also warum Generic (also konkret: Arbeiten mit einem Parameter T), anstatt direkt mit Object / dem passendem Interface?
* Ich weiß das in Java die primitiven Datentypen keine Objekte sind, aber es gibt ja die entsprechendenWrapper, die afaik ja auch bei Generic benutzt werden. Man siehts nur nicht dank autoboxing.