2009-08-08 8 views
2

Existe-t-il de bons guides de référence rapide (de préférence en ligne) pour Java Generics du point de vue de quelqu'un qui comprend parfaitement les Génériques C#? Je trouve que la syntaxe est si semblable que je pense que cela fonctionne juste et je lance dans la syntaxe ne connaissent pas Java comme ceci:Java Generics pour C# Gurus

Class<?> foo; 

que je pensais était similaire au C#:

Type<T> foo; 

mais cela ne semble pas vraiment logique dans le contexte que je vois. D'autant plus qu'il y a un manque de contexte pour T comme il y en aurait en C#.

+0

Merci à tous ceux qui ont répondu. Chacune des 3 réponses avait une partie de ce que je cherchais. – mckamey

Répondre

1

Ce que vous demandez est appelé jokers non liés. Malheureusement, C# ne les supporte pas. De plus, C# 2.0-3.5 n'a aucune implémentation de génériques covariants et contravariants. Les derniers sont introduits C# 4.0. Au lieu de Class<?> foo;, vous pouvez écrire Class<object> foo; en C#. Fondamentalement? a été introduit dans les génériques Java pour la rétrocompatibilité avec les anciennes versions.

Réponse courte est non, vous n'avez pas de représentation directe de? en C#, je vous suggèrerais de le remplacer par un type d'objet, ou de le convertir en template convertissant toute la classe en template template.

+2

J'apprécie le détail de l'exemple spécifique. En C#, 'Class' s'appelle' Type' et n'est pas générique, donc vous ne pouvez pas y ajouter un paramètre générique. Donc, si je comprends bien, la correspondance C# la plus proche pour 'Class ' serait 'Type'. – mckamey