Si c'est toi même je veux bien te passer un exemple mais c'est peut être mieux que tu réfléchisse par toi même.
De mon coté j'ai eu à développer un truc du genre, le plus beau c'est une interface (contenant les méthodes enfiler, défiler et toString) + un implémentation générique, c'est à dire sans limitation de type. Ensuite tu fais un classe dérivée ne gérant qu'un type de donnée : perso j'opterai sur une methode
protected boolean checkType(Object a_MaDonnee)
qui t'indique si ta donnée est supportée par l'objet ou non. Ta classe générique retourne true tout le temps, ta classe spécifique surcharge la méthode et effectue le test du type (le problème c'est qu'il est nécessaire d'utiliser un instanceof pas joli).
Je te fais suivre par mail un exemple d'implémentation.
---------------
quand il n'y a pas de solution c'est qu'il n'y a pas de problème !!