generics : unchecked conversion

generics : unchecked conversion - Java - Programmation

Marsh Posté le 18-01-2005 à 10:58:52    

Encore les generics http://forum-images.hardware.fr/icones/message/icon10.gif
 
Bon alors aujourd'hui, j'ai du mal à piger un warning qui me dit que mon code nécessite une "unchecked conversion". Pour moi une "unchecked conversion", c'est quand on affecte un raw type à un type paramétré. Or là ... voyez-vous même (et laissez les planches à clous à l'entrée SVP :o )
 
Ce code déclenche un warning :

Code :
  1. public interface JobInterface1<T> {
  2.     public T doJob();
  3. }
  4. public class JobClass1 implements JobInterface1<Integer> {
  5.     // Type safety: The return type Integer of the method plop() of type JobClass1 needs unchecked
  6.     // conversion to conform to the return type T of inherited method
  7.     public Integer doJob() { return null; }
  8. }


 
J'arrive à court-cicuiter ce warning, mais ça me suffit pas, j'aimerai comprendre.
Ça, ça marche :

Code :
  1. public interface JobInterface2<T> {
  2.     public <T> T doJob();
  3. }
  4. public class JobClass2 implements JobInterface2<Integer> {
  5.     public <Integer> Integer doJob() { return null; }
  6. }


Message édité par bobuse le 18-01-2005 à 18:21:59

---------------
get amaroK plugin
Reply

Marsh Posté le 18-01-2005 à 10:58:52   

Reply

Marsh Posté le 18-01-2005 à 18:17:39    

je pense que ce genre de problème est nettement plus simple à comprendre avec des cas concrets, ça permet de mettre des noms et des images sur les concepts :)

Reply

Marsh Posté le 18-01-2005 à 18:23:38    

Si ça peut t'aider ...
j'ai édité


Message édité par bobuse le 18-01-2005 à 18:23:48

---------------
get amaroK plugin
Reply

Marsh Posté le 18-01-2005 à 18:29:13    

c'est pas plus clair comme ça: ?

Citation :

public interface JobInterface2 <T> {
        public T doJob();
    }
 
    public class JobClass2 implements JobInterface2 {
        public Integer doJob() {
            return null;
        }
    }

Reply

Marsh Posté le 18-01-2005 à 18:37:41    

(ce qui ressemble méchamment à ton code de départ, me demande si mon compilo affiche bien tous les warnings?)

Reply

Marsh Posté le 18-01-2005 à 18:49:32    

il va falloir commencer à faire une faq java 5.0 parce qu'on a pas fini de se prendre des questions.
 
j'ai en tête pour l'instant :
  la question en MP de -- (il faudra travailler le code parce que c'est son code pro)
  les 2 questions de bobuse.

Reply

Marsh Posté le 18-01-2005 à 18:53:58    

nraynaud a écrit :

il va falloir commencer à faire une faq java 5.0 parce qu'on a pas fini de se prendre des questions.
 
j'ai en tête pour l'instant :
  la question en MP de -- (il faudra travailler le code parce que c'est son code pro)
  les 2 questions de bobuse.


 
c'est clair qu'avec toutes les nouveautés de tiger, y'a de quoi en faire un enorme tuto ! (pour l'instant je test les enumSet...c'est vachement puissant aussi :love:)

Reply

Marsh Posté le 18-01-2005 à 18:57:21    

Giz a écrit :

(pour l'instant je test les enumSet...c'est vachement puissant aussi :love:)


 
c'est clur ! :)


---------------
get amaroK plugin
Reply

Marsh Posté le 18-01-2005 à 18:58:34    

En fait, j'aimerai surtour savoir, si je suis obligé d'utiliser ma deuxième formulation.
Si je suis obligé, Ok j'accepte, mais c'est lourd comme syntaxe quand même [:ddr555]


---------------
get amaroK plugin
Reply

Marsh Posté le 18-01-2005 à 18:58:50    

giz > y'a surtout de quoi se prendre la tête, erasures, covariance, inference, bornes etc. c'est pas des trucs que les gens normaux connaissent.

Reply

Marsh Posté le 18-01-2005 à 18:58:50   

Reply

Marsh Posté le 18-01-2005 à 18:59:15    

bobuse a écrit :

En fait, j'aimerai surtour savoir, si je suis obligé d'utiliser ma deuxième formulation.
Si je suis obligé, Ok j'accepte, mais c'est lourd comme syntaxe quand même [:ddr555]


 
euh, elle te plait pas la mienne? :heink:
 
 
edit: si y'a tjs des warnings, file moi les options que tu passes à javac, moi j'en ai pas :D


Message édité par the real moins moins le 18-01-2005 à 19:00:43
Reply

Marsh Posté le 19-01-2005 à 08:34:35    

je viens de regarder la spec, j'ai pas d'explication claire.

Reply

Marsh Posté le 19-01-2005 à 09:17:21    

the real moins moins a écrit :

euh, elle te plait pas la mienne? :heink:
 
 
edit: si y'a tjs des warnings, file moi les options que tu passes à javac, moi j'en ai pas :D


Ha pardon, j'avais pas vu la différence :D
 
Ben non, toujours le même warning !
 
Les options, ben tu sais ... j'ai pas trouvé comment les obtenir dans eclipse :D
Si quelqu'un sait ;)


---------------
get amaroK plugin
Reply

Marsh Posté le 19-01-2005 à 09:21:19    

Ca devient franchement abscond les messages d'erreurs [:boidleau]

Reply

Marsh Posté le 19-01-2005 à 12:03:20    

bobuse a écrit :

Ha pardon, j'avais pas vu la différence :D
 
Ben non, toujours le même warning !
 
Les options, ben tu sais ... j'ai pas trouvé comment les obtenir dans eclipse :D
Si quelqu'un sait ;)


ha c'est eclipse qui te les sors? et tu t'y fies? [:mlc]

Reply

Marsh Posté le 19-01-2005 à 12:14:50    

the real moins moins a écrit :

ha c'est eclipse qui te les sors? et tu t'y fies? [:mlc]


 
+1 :o
 
Je n'ai pas de warning MOI !! ni souligné par l'editeur, ni a la compilation !
 
il est où le problème :??:
 
EDIT : j'utilise netBeans 4.0


Message édité par Giz le 19-01-2005 à 12:16:00
Reply

Marsh Posté le 19-01-2005 à 12:19:31    

nraynaud a écrit :

giz > y'a surtout de quoi se prendre la tête, erasures, covariance, inference, bornes etc. c'est pas des trucs que les gens normaux connaissent.


 
+1
 
Quand on lit les docs pour essaié de comprendre, c'est limite comprendre un langage de "chercheur". Je trouve leurs types generiques compliqués a manipuler et a apprendre pour un débutant.
Or jusqu'ici, Java se voulait d'être simple ! c'est dommage  :pfff:  
 
PS : erasures ca veut dire "signature de fonction vis a vis des types generiques" je crois et covariance c'est quoi :??:

Reply

Marsh Posté le 19-01-2005 à 12:19:50    

the real moins moins a écrit :

ha c'est eclipse qui te les sors? et tu t'y fies? [:mlc]


Ben un peu.
Sauf quand je suis pas d'accord !
En l'occurence là, je comprends pas l'erreur, donc je suis pas d'accord, et donc je filtre les warnings de ce type pour plus les voir :D
 
Mais j'ai quand même un doute ...
Maintenant, si je suis vaiment sûr de moi, je vais carément désactiver ce genre de warning (il y a une option) et allez voir sur le bugzilla voir ce qu'ils en disent :)


---------------
get amaroK plugin
Reply

Marsh Posté le 19-01-2005 à 12:21:40    

ouais mais bon, nous pondre un topic pour un bug d'eclipse, merde :o

Reply

Marsh Posté le 19-01-2005 à 14:30:54    

Ben je le savais pas si c'était un bug [:ooooo]


---------------
get amaroK plugin
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed