2009-08-08 9 views
2

Gibt es irgendwelche guten Kurzanleitungen (vorzugsweise online) für Java Generics aus der Perspektive von jemandem mit vollständigem Verständnis von C# Generics? Ich finde, dass die Syntax so ähnlich ist, dass ich es erwarten, nur zu arbeiten und dann laufe ich in unbekannte Java-Syntax wie folgt aus:Java Generics für C# Gurus

Class<?> foo; 

, die ich dachte, war ähnlich der C#:

Type<T> foo; 

aber das scheint in dem Kontext, in dem ich es sehe, keinen Sinn zu ergeben. Vor allem, weil es keinen Kontext für T gibt, wie es in C# wäre.

+0

bedankt sich bei allen, die beantwortet. Jede der 3 Antworten hatte einen Teil dessen, wonach ich gesucht hatte. – mckamey

Antwort

1

hilfreich sein können, was Sie fragen wird ungebundenes Platzhalter genannt. Leider unterstützt C# sie nicht. Auch C# 2.0-3.5 hat keine Implementierung von kovarianten und kontravarianten Generika. Letztere werden C# 4.0 eingeführt. Anstelle von Class<?> foo; können Sie Class<object> foo; in C# schreiben. Grundsätzlich? wurde in Java-Generics für die Abwärtskompatibilität mit älteren Versionen eingeführt.

Kurze Antwort ist nein, Sie haben keine direkte Darstellung von? In C# würde ich vorschlagen, dass Sie es durch Objekttyp ersetzen, oder machen Sie es Vorlage, die die gesamte Klasse in Template-Klasse konvertiert.

+2

Ich schätze das Detail über das spezifische Beispiel. In C# wird 'Class' jedoch' Type' genannt und ist nicht generisch. Sie können also keinen generischen Parameter hinzufügen. Also, wenn ich richtig verstehe, wäre die nächste C# Übereinstimmung für 'Class ' 'Type'. – mckamey