Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4513 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  278  279  280  ..  327  328  329  330  331  332
Auteur Sujet :

BlaBlaTech@JAVA [ELITE, viendez les boobs]

n°2027673
basketor63
Sarkozy en prison
Posté le 07-10-2010 à 17:03:49  profilanswer
 

Reprise du message précédent :
pour la langue ça n'aurait traversé qu'une couche, donc ça reste ok, car j'ai ensuite des objets adapteurs qui me permettent de convertir les bean et listes de beans revenant de la base vers un bean métier.

 

j'aurais eu ce parametre de langue sur chaque service, ou alors il aurait fallut que je fasse ressortir le bean provenant du dao hors du service, mais comme c'est un form struts, j'avais pas envie lol

 

Au moins si le dao est réécrit de façon à ne pas renvoyer un form struts, je n'ai qu'a changer ma classe adapteur.

 

En fait l'idéal aurait peut être été de wrapper le dao directement par un dao qui fait l'adaptation
de cette façon le service ne devrait pas être touché si l'implémentation change.

 


J'ai aussi tenté un truc pour avoir une connection attachée au thread, avec fermeture et rollback à la spring, on verra bien ce que ça donne :lol:
c'est là qu'on comprend vraiment l'intérêt des aspects et pointcuts, parceque là je suis obligé de coder le try catch finally dans la méthode, alors que tout ce code pourrait être factorisé et écrit une seule fois


Message édité par basketor63 le 07-10-2010 à 17:44:31
mood
Publicité
Posté le 07-10-2010 à 17:03:49  profilanswer
 

n°2027748
basketor63
Sarkozy en prison
Posté le 08-10-2010 à 01:48:39  profilanswer
 

bon je parle tout seul, mais le truc que j'ai fait marche  [:kahn21]

 

je pourrais coller la classe si vous voulez, il y a peut être un truc que j'ai pas vu qui me pètera à la gueule plutard :D

 

pour des transactions multiples il faut pas rêver je vais pas réinventer spring ou les ejbs, mais là déjà ça permet d'avoir un design bien plus propre, ça m'aurait bien servis sur d'autres projets [:stukka]


Message édité par basketor63 le 08-10-2010 à 01:52:55
n°2028481
DaMehdi
Posté le 11-10-2010 à 23:14:51  profilanswer
 

Salut tout le monde,
 
Je développe une grosse appli web depuis un bon moment,je trouve la JEE 6 bien supérieure aux versions précédentes,tout se fait de façon beaucoup plus souple grâce aux annotations.
Mais j'ai un souci,j'utilise Glassfish car c’est le seul serveur compatible avec la spécification et il est lourd à chaque run.
Je voudrais savoir s'il n’aurait pas un autre moyen pour débugger mes pages sans runner à chaque fois.
 
Merci.

n°2028493
TBone
Qui vivum verrum; vroom vroom.
Posté le 12-10-2010 à 08:09:30  profilanswer
 

ce n'est sans doute pas le glassfish qui est lourd... particulièrement si tu utilises la v3.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°2028515
brisssou
8-/
Posté le 12-10-2010 à 10:27:53  profilanswer
 

DaMehdi a écrit :

Salut tout le monde,
 
Je développe une grosse appli web depuis un bon moment,je trouve la JEE 6 bien supérieure aux versions précédentes,tout se fait de façon beaucoup plus souple grâce aux annotations.
Mais j'ai un souci,j'utilise Glassfish car c’est le seul serveur compatible avec la spécification et il est lourd à chaque run.
Je voudrais savoir s'il n’aurait pas un autre moyen pour débugger mes pages sans runner à chaque fois.
 
Merci.


 
 
regarde du coté de JRebel


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°2028579
basketor63
Sarkozy en prison
Posté le 12-10-2010 à 12:45:22  profilanswer
 

il y a pas moyen de faire un sorte qu'un log.debug( ) affiche la methode et son numero de ligne même si il n'y pas d'exception ?
 
 

n°2028580
zapan666
Tout est relatif
Posté le 12-10-2010 à 12:49:52  profilanswer
 

basketor63 a écrit :

il y a pas moyen de faire un sorte qu'un log.debug( ) affiche la methode et son numero de ligne même si il n'y pas d'exception ?


bah c'est pareil, sans exception. Il faut que le "pattern" de ton appender soit correct
 
log4j :  
http://logging.apache.org/log4j/1.2/manual.html

Citation :

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n



---------------
my flick r - Just Tab it !
n°2028602
basketor63
Sarkozy en prison
Posté le 12-10-2010 à 14:13:25  profilanswer
 

zapan666 a écrit :


bah c'est pareil, sans exception. Il faut que le "pattern" de ton appender soit correct
 
log4j :  
http://logging.apache.org/log4j/1.2/manual.html

Citation :

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n




 
parfait ! merci !
Je me rappelle avoir cherché sans trouver par la passé [:ddr555]

n°2028603
zapan666
Tout est relatif
Posté le 12-10-2010 à 14:15:13  profilanswer
 

basketor63 a écrit :


 
parfait ! merci !
Je me rappelle avoir cherché sans trouver par la passé [:ddr555]


attention, de mémoire, c'est lent. Donc pour le dev. c'est bien. Pour la prod, ça l'est moins.


---------------
my flick r - Just Tab it !
n°2028605
basketor63
Sarkozy en prison
Posté le 12-10-2010 à 14:17:31  profilanswer
 

zapan666 a écrit :

attention, de mémoire, c'est lent. Donc pour le dev. c'est bien. Pour la prod, ça l'est moins.


 
ok
peut être qu'on peut adapater le pattern au niveau de log ?

mood
Publicité
Posté le 12-10-2010 à 14:17:31  profilanswer
 

n°2028607
zapan666
Tout est relatif
Posté le 12-10-2010 à 14:29:00  profilanswer
 

basketor63 a écrit :


 
ok
peut être qu'on peut adapater le pattern au niveau de log ?


Je sais pas. Mais généralement, je n'utilise pas le même fichier de log entre les différents environnements (rien que pour ne pas printer les DEBUG en prod...)


---------------
my flick r - Just Tab it !
n°2028681
masklinn
í dag viðrar vel til loftárása
Posté le 12-10-2010 à 16:55:54  profilanswer
 

zapan666 a écrit :


attention, de mémoire, c'est lent. Donc pour le dev. c'est bien. Pour la prod, ça l'est moins.


T'façon il fait ce bordel que quand il logge pour de vrai non?
 
Ou alors faut mettre des if(logger.isEnabledFor(logger.getLevel())) (enfin truc du style, c'est probablement pas bon en l'état) de partout?

Message cité 2 fois
Message édité par masklinn le 12-10-2010 à 16:59:37

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2028703
Siluro
Posté le 12-10-2010 à 17:13:50  profilanswer
 

masklinn a écrit :


T'façon il fait ce bordel que quand il logge pour de vrai non?
 
Ou alors faut mettre des if(logger.isEnabledFor(logger.getLevel())) (enfin truc du style, c'est probablement pas bon en l'état) de partout?


ce if est déjà fait en interne si je n'm'abuse [:croustillou]

n°2028707
basketor63
Sarkozy en prison
Posté le 12-10-2010 à 17:18:35  profilanswer
 

masklinn a écrit :


T'façon il fait ce bordel que quand il logge pour de vrai non?
 
Ou alors faut mettre des if(logger.isEnabledFor(logger.getLevel())) (enfin truc du style, c'est probablement pas bon en l'état) de partout?


 
l'intérêt du if(log.isdebug()) etcetera c'est surtout pour éviter qu'il y ai évaluation de la chaine de caractères de log.debug("  ... "+bla²+"blo" ) et aussi éviter l'appel de la fonction qui ne fera rien de toutes façons si le niveau de log est trop bas, car il y aura un if dans le style que tu décris pour pas que ça logue.
 
 
sinon je me demandais si avec un objet B qui hérite de A, il y a moyen de d'obtenir une instance B avec les mêmes valeurs que A, sans avoir à créer manuellement dans B un constructeur qui va copier les champs 1 par 1.
 
car clonage c'est pas possible et cast non plus mais ils ont quand même beaucoup en commun
 
par exemple un  
A a = new A();
B b = B.clone(a);
 
qui clonerait seulement les champs communs aux deux, plutot qu'un  
 

Code :
  1. B b = new B(a);
  2. class B {
  3. bla
  4. bli
  5. public B(A a){
  6. bla=a.bla;
  7. bli=a.bli;
  8. }


 
:D
 
edit :  [:chacha1910]  sérialiser et deserialiser avec Xstream ? [:ddr555]

Message cité 1 fois
Message édité par basketor63 le 12-10-2010 à 17:33:33
n°2028719
masklinn
í dag viðrar vel til loftárása
Posté le 12-10-2010 à 17:37:07  profilanswer
 

Siluro a écrit :


ce if est déjà fait en interne si je n'm'abuse [:croustillou]


T'aurais apris à lire, tu te serais rendu compte que c'était justement ma question [:petrus75]
 

basketor63 a écrit :

l'intérêt du if(log.isdebug()) etcetera c'est surtout pour éviter qu'il y ai évaluation de la chaine de caractères de log.debug("  ... "+bla²+"blo" ) et aussi éviter l'appel de la fonction qui ne fera rien de toutes façons si le niveau de log est trop bas, car il y aura un if dans le style que tu décris pour pas que ça logue.


Oui mais non hein, ça c'est de la microoptimisation en slip sale, à ce stade là tu colles un préprocesseur et tu dégages complètement le code de débugging sur les binaires de prod au lieu d'être un gros porc. L'intérêt de checker le loglevel c'est surtout quand t'as un vrai appel bien coûteux dans ton logging, genre tu touches au FS ou à la db.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2028734
basketor63
Sarkozy en prison
Posté le 12-10-2010 à 18:04:51  profilanswer
 

 


masklinn a écrit :

Oui mais non hein, ça c'est de la microoptimisation en slip sale, à ce stade là tu colles un préprocesseur et tu dégages complètement le code de débugging sur les binaires de prod au lieu d'être un gros porc.

 

en théorie log4j permet de changer le niveau de log à chaud même si c'est pas recommandé
si tu vires le code de debugging tu peux pas

 
masklinn a écrit :

L'intérêt de checker le loglevel c'est surtout quand t'as un vrai appel bien coûteux dans ton logging, genre tu touches au FS ou à la db.

 

que ce soit une string ou un appel de méthode plus conséquent, le probleme c'est le principe de l'évaluation du code qui sera passé en parametre de log.debug( Object o ).

 

par exemple log.debug( bidule.maFonctionQuiPrendTroisHeuresPourGenererLeResultatOuQuiVaMemeTaperEnBase() )
quelque soit le niveau de log, la fonction sera exécutée

 

je me doute que tu le sais

Message cité 2 fois
Message édité par basketor63 le 12-10-2010 à 18:11:45
n°2028739
masklinn
í dag viðrar vel til loftárása
Posté le 12-10-2010 à 18:11:10  profilanswer
 

basketor63 a écrit :

en théorie log4j permet de changer le niveau de log à chaud même si c'est pas recommandé
si tu vires le code de debugging tu peux pas


Soit tu microoptimise ton slip sale soit tu le fais pas [:spamafote]

basketor63 a écrit :

que ce soit une string ou un appel de méthode plus conséquent, le probleme c'est le principe de l'évaluation du code qui sera passé en parametre de log.debug( Object o ).
 
par exemple log.debug( bidule.maFonctionQuiPrendTroisHeuresPourGenererLeResultatOuQuiVaMemeTaperEnBase() )
quelque soit le niveau de log, la fonction sera exécutée
 
je me doute que tu le sais


Oui, et the point, you missed it. Concaténer 3 strings ça coûte rien. Ça vaut pas le coup de rajouter 3 lignes de conditionnels pour ça.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2028743
basketor63
Sarkozy en prison
Posté le 12-10-2010 à 18:15:25  profilanswer
 

masklinn a écrit :

Soit tu microoptimise ton slip sale soit tu le fais pas [:spamafote]

 
masklinn a écrit :

Oui, et the point, you missed it. Concaténer 3 strings ça coûte rien. Ça vaut pas le coup de rajouter 3 lignes de conditionnels pour ça.

 

Tu as raté le point dès le début en décidant de ne pas retenir le cas général de l'exemple, qui est l'évaluation de ce qui est passé en parametre.
et qui peut justifier d'ajouter un if log.isdebug devant un le log.debug

 
masklinn a écrit :

T'aurais apris à lire, tu te serais rendu compte que c'était justement ma question [:petrus75]

 

ta question n'est pas claire

 

ces infos de lignes il les obtient peut être du Thread.currentThread().getStacktrace() qui sera toujours à jour j'imagine mais j'en sais pas plus pour ma part
si c'est le sens de ta question


Message édité par basketor63 le 12-10-2010 à 18:17:32
n°2028749
the real m​oins moins
Posté le 12-10-2010 à 18:41:08  profilanswer
 


masklinn a écrit :


Oui, et the point, you missed it. Concaténer 3 strings ça coûte rien. Ça vaut pas le coup de rajouter 3 lignes de conditionnels pour ça.


slf4j: log.debug("truc {} machin {} bidule", arg1, arg2, arg)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2028755
masklinn
í dag viðrar vel til loftárása
Posté le 12-10-2010 à 18:53:08  profilanswer
 

the real moins moins a écrit :


slf4j: log.debug("truc {} machin {} bidule", arg1, arg2, arg)


logging.debug en Python aussi, mais je m'attend pas nécessairement à ce que des libs java soient capables d'une intelligence pareille.

 

Et si arg1 est un gros callable qui fait 5 appels rpc, ben tu l'as dans le fion pareil.


Message édité par masklinn le 12-10-2010 à 18:53:32

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2028760
the real m​oins moins
Posté le 12-10-2010 à 19:05:40  profilanswer
 

oui, c'est juste bon pour éviter de la concat et du .toString()


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2028764
masklinn
í dag viðrar vel til loftárása
Posté le 12-10-2010 à 19:18:16  profilanswer
 

the real moins moins a écrit :

oui, c'est juste bon pour éviter de la concat et du .toString()


C'est un très bon début :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2028768
84mickael
Posté le 12-10-2010 à 19:29:54  profilanswer
 

Le contenu de ce message a été effacé par son auteur

n°2028775
84mickael
Posté le 12-10-2010 à 19:53:53  profilanswer
 

Le contenu de ce message a été effacé par son auteur

n°2028783
el muchach​o
Comfortably Numb
Posté le 12-10-2010 à 21:27:24  profilanswer
 

basketor63 a écrit :

 

en théorie log4j permet de changer le niveau de log à chaud même si c'est pas recommandé
si tu vires le code de debugging tu peux pas

 



Oui, c'est pas recommandé, parce que si jamais t'as besoin de passer l'appli en debug, il suffit qu'un mec ait mis dans le code en dur qq part loglevel(INFO), et tu l'as dans le cul, tu seras en INFO.

basketor63 a écrit :

 

que ce soit une string ou un appel de méthode plus conséquent, le probleme c'est le principe de l'évaluation du code qui sera passé en parametre de log.debug( Object o ).

 

par exemple log.debug( bidule.maFonctionQuiPrendTroisHeuresPourGenererLeResultatOuQuiVaMemeTaperEnBase() )
quelque soit le niveau de log, la fonction sera exécutée

 

je me doute que tu le sais


Dans un projet où j'étais, on se faisait pas chier, on était en DEBUG en prod. En général, pour les applis de gestion qui sont lourdes en com réseau et/ou accès base de données, c'est pas super pénalisant (enfin, faut mesurer un peu quand même avant de conclure). Par contre, on se retrouve avec 3 Go de logs par jour, et ça c'est plutôt chiant. Du coup, on avait fait une surcouche pour logger tout en RAM, et n'étaient écrites sur disque que les exceptions et les 10 secondes de log les précédant ou les N logs d'avant (la durée de rétention étant réglable à chaud). Ca marchait pas trop mal,  du jour au lendemain, la taille des logs a été divisée par 500. Je n'ai jamais compris pourquoi aucune API de log ne propose ça à ma connaissance.
PS: ça ne revient pas à faire du log "normal", car là, on avait toutes les traces en DEBUG, et pas juste du WARNING ou ERROR, mais uniquement celles précédant une erreur.

Message cité 1 fois
Message édité par el muchacho le 12-10-2010 à 21:33:57

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2028785
masklinn
í dag viðrar vel til loftárása
Posté le 12-10-2010 à 21:36:14  profilanswer
 

el muchacho a écrit :

Ca marchait pas trop mal, je n'ai jamais compris pourquoi aucune API de log ne propose ça à ma connaissance.


Suffit de coder le handler (ou Appender, en lingo log4j) qui implémente la bonne stratégie, ce que tu décris a l'air un peu trop spécifique pour l'intégrer directement à la lib et tu peux le construire sans trop de difficultés soit direct soit à partir d'un handler/appender qui balance les données sur un socket (SocketAppender pour log4j) distant ou local et fait bien ce qu'il veut avec ses données.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2028787
el muchach​o
Comfortably Numb
Posté le 12-10-2010 à 21:43:32  profilanswer
 

Oui c'est une bonne solution (pour ne pas dire LA bonne solution). De l'autre coté, tu récupères tes traces sur un processeur d'événements du style Esper ou StreamCruncher, et tu fais ce que tu veux avec.


Message édité par el muchacho le 12-10-2010 à 21:47:56

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2028791
DaMehdi
Posté le 12-10-2010 à 21:55:17  profilanswer
 

TBone a écrit :

ce n'est sans doute pas le glassfish qui est lourd... particulièrement si tu utilises la v3.


 
J'utilise la V3 sur une appli moyenne et je trouve le serveur bien lourd comparé à d'autres.
 

brisssou a écrit :


 
 
regarde du coté de JRebel


 
Merci ça a l'air intéressant,je vais l'essayer.
Dommage que ce soit payant.
 
 
Sinon les spécialistes,que pensez vous de cet article ?  
 

Citation :

The Future of Java: forking, death, or stasis?


 
http://www.theserverside.com/news/ [...] 887#339773
 
Quel est l'avenir de Java selon vous ? Je vois beaucoup de pessimisme en ce moment,beaucoup de dév qui vont vers d'autres langages ?  
Qu’est ce qui se passe ?

n°2028801
TBone
Qui vivum verrum; vroom vroom.
Posté le 12-10-2010 à 22:35:52  profilanswer
 

DaMehdi a écrit :

J'utilise la V3 sur une appli moyenne et je trouve le serveur bien lourd comparé à d'autres.


comparé à quels autres ? tu le démarres avec le web profile ?


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°2028804
DaMehdi
Posté le 12-10-2010 à 23:07:01  profilanswer
 

TBone a écrit :


comparé à quels autres ? tu le démarres avec le web profile ?


 
Tomcat par exemple et oui je démarre avec le Web profile.

n°2028818
TBone
Qui vivum verrum; vroom vroom.
Posté le 13-10-2010 à 05:44:16  profilanswer
 

comparer Tomcat avec un appserver complet, c'est comme comparer une camionnette avec un 35tonnes...


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°2028829
brisssou
8-/
Posté le 13-10-2010 à 09:06:11  profilanswer
 


 

DaMehdi a écrit :


 
Merci ça a l'air intéressant,je vais l'essayer.
Dommage que ce soit payant.


 
la trial dure 30 jours, et si tu prends les nightlies régulièrement, tu peux marcher comme ça.
 
Et c'est gratuit pour les devs opensource, et c'est pas si cher que ça pour une entreprise.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°2028836
exhortae
Membre du Cartel des Médecins
Posté le 13-10-2010 à 09:16:03  profilanswer
 

DaMehdi a écrit :


 
Tomcat par exemple et oui je démarre avec le Web profile.


 
 
Si t'as de la thune tu peux mettre glasshfish sur un ssd dédié.

n°2029382
el muchach​o
Comfortably Numb
Posté le 14-10-2010 à 21:05:10  profilanswer
 

Y'a OpenEJB aussi, mais ça reste une usine à gaz.


Message édité par el muchacho le 14-10-2010 à 21:13:13

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2029551
basketor63
Sarkozy en prison
Posté le 15-10-2010 à 12:09:58  profilanswer
 

malgré les générics pourquoi on peut pas, si B herite de A, faire simplement
List<A> a = new List<B>();  ??
 
 

n°2029566
nraynaud
lol
Posté le 15-10-2010 à 12:51:34  profilanswer
 

basketor63 a écrit :

malgré les générics pourquoi on peut pas, si B herite de A, faire simplement
List<A> a = new List<B>(); ??

 




Sinon on peut faire a.add(new A());


---------------
trainoo.com, c'est fini
n°2029568
zapan666
Tout est relatif
Posté le 15-10-2010 à 12:57:05  profilanswer
 

basketor63 a écrit :

malgré les générics pourquoi on peut pas, si B herite de A, faire simplement
List<A> a = new List<B>();  ??


parce que ça n'a aucun intérêt ? (si il y en a un, j'ai du mal a voir lequel)


---------------
my flick r - Just Tab it !
n°2029570
zapan666
Tout est relatif
Posté le 15-10-2010 à 12:58:44  profilanswer
 

nraynaud a écrit :


Sinon on peut faire a.add(new A());


 [:cosmoschtroumpf] peut être qu'il veut une liste de A
 
 :o voilà, une raison de ne pas le faire : on ne sait pas si tu veux une liste de A, ou une liste de B


---------------
my flick r - Just Tab it !
n°2029598
basketor63
Sarkozy en prison
Posté le 15-10-2010 à 15:12:20  profilanswer
 

nraynaud a écrit :

Sinon on peut faire a.add(new A());

 
zapan666 a écrit :

parce que ça n'a aucun intérêt ? (si il y en a un, j'ai du mal a voir lequel)

 
zapan666 a écrit :

[:cosmoschtroumpf] peut être qu'il veut une liste de A

 

:o voilà, une raison de ne pas le faire : on ne sait pas si tu veux une liste de A, ou une liste de B

 

parceque tu peux faire

 
Code :
  1. List<A> la = new ArrayList<A>;
  2. List<B> lb = new ArrayList<B>;
  3. lb.ad(new B());
  4. lb.ad(new B());
  5. for(B b:lb){
  6. la.add(b);
  7. }
 

au final j'ai une liste de List<A> contenant des B

 

MAIS en fait ce qui change c'est que la liste "la" en elle même est une instance de List<A> et en fait il y a aucune relation d'héritage entre List<A> et List<B> c'est ce qui fait que le cast est impossible apparement.

 

il me semblait qu'on pouvait s'en sortir avec les trucs genre List<? extends A> mais je n'y arrive point :o

 

edit : en fait plutot que faire une boucle on peut faire

Code :
  1. List<B> lb = new ArrayList<B>;
  2. List<A> la = new ArrayList<A>(lb);


Message cité 1 fois
Message édité par basketor63 le 15-10-2010 à 15:19:49
n°2029607
zapan666
Tout est relatif
Posté le 15-10-2010 à 15:27:33  profilanswer
 

basketor63 a écrit :


...
 
au final j'ai une liste de List<A> contenant des B
 
MAIS en fait ce qui change c'est que la liste "la" en elle même est une instance de List<A> et en fait il y a aucune relation d'héritage entre List<A> et List<B> c'est ce qui fait que le cast est impossible apparement.


pour faire quelque chose genre ça ?  

Code :
  1. List<B> lc = la;


normal qu'on ne puisse pas le faire : la c'est une liste de A.  
(je comprend pas le problème en fait)

basketor63 a écrit :


il me semblait qu'on pouvait s'en sortir avec les trucs genre List<? extends A> mais je n'y arrive point :o
 
edit : en fait plutot que faire une boucle on peut faire  

Code :
  1. List<B> lb = new ArrayList<B>;
  2. List<A> la = new ArrayList<A>(lb);




maList.addAll(liste) ça marche pas mal non plus.


---------------
my flick r - Just Tab it !
n°2029620
basketor63
Sarkozy en prison
Posté le 15-10-2010 à 15:44:40  profilanswer
 

zapan666 a écrit :


pour faire quelque chose genre ça ?

Code :
  1. List<B> lc = la;


normal qu'on ne puisse pas le faire : la c'est une liste de A.
(je comprend pas le problème en fait)

 

parceque B hérite de A

 

donc List<A> peut contenir des A et des B, et List<B> seulement des B, par contre List<B> n'est pas une instance de List<A>, il y a pas de relation d'héritage, donc le cast marche pas
c'est en fait le même probleme avec les tableaux, il faut reconstruire le tableau en entier

 


zapan666 a écrit :

maList.addAll(liste) ça marche pas mal non plus.

 

si t'as déjà fait maList = new ArrayList() avant oui évidement

Message cité 1 fois
Message édité par basketor63 le 15-10-2010 à 15:45:27
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  278  279  280  ..  327  328  329  330  331  332

Aller à :
Ajouter une réponse
 

Sujets relatifs
[java]Ouvrir un fichier dans la fenetre principaleformation pour developpeurs Java
crontab : programme java[JAVA] Aide pour packager un jar
[java] copie de fichier et progressbarinstallation java
[JAVA]Comment insérer un texte dans un fichier audio?[JAVA] Intégrer ANT : API ou ligne de commande ?
[Java][Bouley]Serializable : mauvaise instanciation des champs[JAVA : JNI] Pb a l'execution avec library
Plus de sujets relatifs à : BlaBlaTech@JAVA [ELITE, viendez les boobs]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)