pb de "unchecked conversion" avec generic [RESOLU] - Java - Programmation
Marsh Posté le 28-10-2005 à 21:53:11
Et avec une LinkedList<? extends BufferedReader> ?
PS : ta meme plus besoin de caster avec ça d'ailleurs.
Marsh Posté le 29-10-2005 à 00:42:39
Non ma classe abstraite a besoin de garder le proto sans aucun rapport à BufferedReader
donc LinkedList et pas LinkedList<n'importe quel rapport à BufferedReader>
car une deuxième classe dérivée utilise LinkedList<org.xml.sax.InputSource>
et une troisième ???
en fait, mes sources sont tellement différentes ( crées à partir de Socket.getInputStream() ) que je me suis mis à utiliser un LinkedList pour pouvoir dériver ma classe abstraite et n'avoir qu'un problème de cast à gérer
d'ailleurs, si y'a moyen de virer LinkedList, je suis preneur (mais sans utiliser la classe Object come type de retour)
Marsh Posté le 29-10-2005 à 08:07:48
sinon, après quelques manipulations j'arrive à un truc superbe : une erreur de compilation qui me dit que
|
je précise que, ce qui est merveilleux, c'est que, jamais de la vie, je n'ai utilisé un BufferedReader qui ne viennes pas du package java.io, forcément
voila j'avais juste envie de vous faire partager ...
(ici le proto abstrait est "<T> LinkedList<T> getInput();" )
Marsh Posté le 29-10-2005 à 08:40:02
Bon c'est résolu avec :
Code :
|
du coup je me demande même si j'ai vraiment besoin que mes méthodes soit abstraites ...
EDIT : et la réponse est non (même si je comprends toujours pas grand chose aux generics et à ce que j'ai codé, pas grave ca marche )
Marsh Posté le 28-10-2005 à 21:18:27
Salut,
voici une méthode qui implémente celle d'une classe abstraite (donc sans BufferedReader dans le prototype) :
la compilation avec l'option -Xlint me dit :
(...) warning: [unchecked] unchecked conversion
found : java.util.LinkedList
required: java.util.LinkedList<java.io.BufferedReader>
this.input=input;
^
et même chose lorsque je faisais le cast avec :
this.input=LinkedList<BufferedReader>input;
est-ce vraiment grave vu que je teste le cast avant ?
et sinon, comment éliminer le warning ?
vu qu'au dela de l'utilisation la plus simple qui consiste à pas faire de class cast, j'ai du mal avec les generic
et que je ne peux pas simplement overrider avec : protected void setInput(LinkedList<BufferedReader> input) { ... }
Message édité par TheRom_S le 29-10-2005 à 08:40:33
---------------
The Rom's, à votre service