Generics et Joker

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 09:52
The Meteorologist Messages postés 232 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 3 novembre 2011 - 10 oct. 2011 à 21:41
Salut,

Après quelques recherches sans succès, je viens poser ma petite question ici, même si j'ai des doutes quand à la réponse.

J'ai dans mon modèle ORM un objet AbstractEntite générique donc, dont mes entités hérites, PK étant le type de ma clé primaire associée à mon entité

Je souhaite, pour des traitements de masse, créer une classe EntiteList<E> où E serait une classe dérivant de mon AbstractEntite.

En Java, j'aurai fait un truc équivalent à ça :

public class EntiteList<E> : List<E> where E : AbstractEntite<?>


Car je n'ai aucun intérêt à mettre une quelconque restriction dans ma liste sur le type de la clé primaire de mon entitié

Alors bien sur, j'ai la possiblité de faire :

public class EntiteList<E, PK> : List<E> where E : AbstractEntite


Mais étant donné que je ne vais qu'en de très rares cas étendre ma liste pour une entité spécifique (les traitements s'appuyant sur des méthodes de mes entités), ça veut dire se promener à chaque déclaration de liste mon type de clé primaire et ça me botte qu'à moitié.

public class EntiteList<E> : List<E> where E : AbstractEntite<Object>


merdouille aussi parce qu'il se perd dans les cast au niveau de ma classe abstraite de DAL elle-même générique.

Bref, y a-t-il un équivalent au joker des génériques Java ou une solution sortie du chapeau pour ce genre de cas ?

En vous remerciant du coup de main
gmi19oj19

1 réponse

The Meteorologist Messages postés 232 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 3 novembre 2011 1
10 oct. 2011 à 21:41
Désolé pour le déterrage

As-tu trouvé une solution à ton problème ?

Je t'avoue que je n'ai jamais entendu parlé du "joker" de java mais quelle différence exactement avec TypeGenérique<Object> ? Qu'est ce que tu y gagnes concrètement ?

Simon
0