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

 


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

BlaBlaTech@JAVA [ELITE, viendez les boobs]

n°2031111
the real m​oins moins
Posté le 21-10-2010 à 11:44:12  profilanswer
 

Reprise du message précédent :
Class<Enum>


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 21-10-2010 à 11:44:12  profilanswer
 

n°2031112
the real m​oins moins
Posté le 21-10-2010 à 11:44:27  profilanswer
 

A noter que ça existe deja et que tout le monde se demande à quoi tu joues.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2031113
zapan666
Tout est relatif
Posté le 21-10-2010 à 11:45:37  profilanswer
 

84mickael a écrit :

Comment vous écririez une méthode générique qui prend une String et un Enum (classe) en paramètre, et qui renverrait la valeur de l'Enum?
 

Code :
  1. public enum Order {
  2.     ASCENDING, DESCENDING;
  3. }
  4. public static String getEnum(String enumValue, ??? enumType) {
  5.     return enumType.valueOf(enumValue);
  6. }
  7. getEnum("ASCENDING", Order.class);


Merci ;)


Code :
  1. public static String getEnum(String enumValue, Class<? extends Enum> enumType) {
  2.     return enumType.valueOf(enumValue);
  3. }


mais le mieux serait de mettre ça dans l'enum


---------------
my flick r - Just Tab it !
n°2031117
84mickael
Posté le 21-10-2010 à 11:54:56  profilanswer
 

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

n°2031121
the real m​oins moins
Posté le 21-10-2010 à 12:05:09  profilanswer
 

Enum.valueOf(Order.class, "ASCENDING" ) ...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2031122
84mickael
Posté le 21-10-2010 à 12:05:22  profilanswer
 

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

n°2031123
84mickael
Posté le 21-10-2010 à 12:05:58  profilanswer
 

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


Message édité par 84mickael le 21-10-2010 à 12:18:25
n°2031128
masklinn
í dag viðrar vel til loftárása
Posté le 21-10-2010 à 13:14:59  profilanswer
 

84mickael a écrit :

[:charlest]

 

Voici ma méthode finale (elle permet de convertir un paramètre venant de la requête HTTP, en une valeur d'Enum):

Code :
  1. public <E extends Enum<E>>  E  getParameter(String name, Request request, Class<E> enumeration) {
  2.     return Enum.valueOf(enumeration, getParameter(name, request));
  3. }



Et donc tu l'appelles en faisant

Code :
  1. getParameter("foo", request, Order.class)

.

 

Tu gagnes quoi par rapport à

Code :
  1. Order.valueOf(getParameter("foo", request))


?
(ou mieux,

Code :
  1. Order.valueOf(request.getParameter("foo" ))

)

Message cité 1 fois
Message édité par masklinn le 21-10-2010 à 13:16:11

---------------
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°2031150
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 14:53:51  profilanswer
 

merci, je savais pas que .valueOf existait sur les enums, je trouvais ça bizarre de devoir coder une méthode à la main :D
 
 

n°2031237
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 17:52:33  profilanswer
 

j'ai finit par trouver pourquoi mes annotations marchaient pas dans des war générés par maven
 
le probleme c'est que maven ne sait pas compiler les annotations, en tout cas dans la version que j'ai.
J'en ai eu le coeur net quand j'ai collé le WEB-INF/classes du projet éclipse dans le WEB-INF de la webapp déployée dans tomcat, et oh miracle ça à fonctionné.
 
si quelqu'un en sait plus, ça m'interesse

mood
Publicité
Posté le 21-10-2010 à 17:52:33  profilanswer
 

n°2031238
zapan666
Tout est relatif
Posté le 21-10-2010 à 17:58:42  profilanswer
 

basketor63 a écrit :

j'ai finit par trouver pourquoi mes annotations marchaient pas dans des war générés par maven
 
le probleme c'est que maven ne sait pas compiler les annotations, en tout cas dans la version que j'ai.
J'en ai eu le coeur net quand j'ai collé le WEB-INF/classes du projet éclipse dans le WEB-INF de la webapp déployée dans tomcat, et oh miracle ça à fonctionné.
 
si quelqu'un en sait plus, ça m'interesse


maven, ce n'est pas un compilateur.
 
C'est à l'assemblage de ton war, il ne doit pas inclure tes dépendances ( = tes annotations).


---------------
my flick r - Just Tab it !
n°2031239
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 18:05:24  profilanswer
 

zapan666 a écrit :

maven, ce n'est pas un compilateur.

 

C'est à l'assemblage de ton war, il ne doit pas inclure tes dépendances ( = tes annotations).

 

oui je sais que c'est pas un compilateur, mais vu qu'on peut déjà spécifier la version des sources et de target, et que par défaut il gueule si il y a des annotations et qu'on spéficie pas 1.5 en version de source et destination, on peut imaginer qu'il y est pour quelque chose dans la génération des classes

 

Mais si c'est pas le cas et qu'il s'agit juste d'inclusion je souhaite néamoins savoir comment faire

 

je sais pas à quoi ressemblent les annotations au niveau binaire
il faut les importer dans les classes donc j'imagine qu'elles sont compilées dans le code, mais j'en sais trop rien à l'heure actuelle

Message cité 1 fois
Message édité par basketor63 le 21-10-2010 à 18:06:12
n°2031240
zapan666
Tout est relatif
Posté le 21-10-2010 à 18:28:25  profilanswer
 

basketor63 a écrit :


 
oui je sais que c'est pas un compilateur, mais vu qu'on peut déjà spécifier la version des sources et de target, et que par défaut il gueule si il y a des annotations et qu'on spéficie pas 1.5 en version de source et destination, on peut imaginer qu'il y est pour quelque chose dans la génération des classes
 
Mais si c'est pas le cas et qu'il s'agit juste d'inclusion je souhaite néamoins savoir comment faire
 
je sais pas à quoi ressemblent les annotations au niveau binaire
il faut les importer dans les classes donc j'imagine qu'elles sont compilées dans le code, mais j'en sais trop rien à l'heure actuelle


"ça marche pas", c'est assez vague... vu ton workaround, je dirais qu'il manque juste les annotations dans le war. Vérifie juste que le war contient tes classes, et au bon endroit. Et si c'est pas ça, c'est u autre problème.


---------------
my flick r - Just Tab it !
n°2031241
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 18:28:45  profilanswer
 

je sais pas ce qu'elles deviennent les annotations lol

 

je decompile une classe elles sont pas là, j'ai aussi regardé dans le dossier généré par éclipse
Je vois pas où elles peuvent être
t'as déjà vu des classes générées ou tu dis ça à tout hasard ?

Message cité 1 fois
Message édité par basketor63 le 21-10-2010 à 18:29:56
n°2031244
zapan666
Tout est relatif
Posté le 21-10-2010 à 18:31:45  profilanswer
 

basketor63 a écrit :

je sais pas ce qu'elles deviennent les annotations lol
 
je decompile une classe elles sont pas là, j'ai aussi regardé dans le dossier généré par éclipse
Je vois pas où elles peuvent être
t'as déjà vu des classes générées ou tu dis ça à tout hasard ?


non mais j'ai mal compris : je croyais que tu copié les annotations compilés (monAnnotation.class) dans ton WEB-INF/classes


---------------
my flick r - Just Tab it !
n°2031245
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 18:35:48  profilanswer
 

ha ok non c'était les classes entières
 
là j'ai résolu le probleme je crois,
il y avait des vielles classes à trainer dans WEB-INF/classes qui étaient là avant le passage à maven
Je m'en suis apperçu en voyant qu'il y avait un log4j en info alors que je le mettais en debug [:prozac]
 
le plugin war de maven n'a jamais pris la peine d'effacer le contenu de ce dossier, c'est hallucinant
(et moi non plus mais bon, moi au moins j'ai fini par avoir l'idée de le faire :D)
 
mais je me pose quand même la question d'où se trouvent les annotations, car on les voit pas dans le code décompilé

n°2031247
zapan666
Tout est relatif
Posté le 21-10-2010 à 18:37:31  profilanswer
 

basketor63 a écrit :


le plugin war de maven n'a jamais pris la peine d'effacer le contenu de ce dossier, c'est hallucinant
(et moi non plus mais bon, moi au moins j'ai fini par avoir l'idée de le faire :D)


 :o la classe était dans le target ? mvn clean ? mvn war il prend juste ton target et zip le tout en war.


---------------
my flick r - Just Tab it !
n°2031248
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 18:40:39  profilanswer
 

oui on me dit aussi dans l'oreillette qu'un clean aurait vidé ce dossier [:joce]

 


non la classe était dans le WEB-INF/classes du projet, vu qu'avant maven les classes étaient là
donc maven copiait betement le contenu du WEB-INF pour faire son war
en fait je pense que le clean de maven n'aurait rien changé

Message cité 1 fois
Message édité par basketor63 le 21-10-2010 à 18:41:54
n°2031249
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 18:44:02  profilanswer
 

putain mais java ...
 
en C à l'éxécution ça aurait pété direct si tu mélanges des obj qui ne sont pas linkés ensemble

n°2031257
zapan666
Tout est relatif
Posté le 21-10-2010 à 19:53:02  profilanswer
 

basketor63 a écrit :

oui on me dit aussi dans l'oreillette qu'un clean aurait vidé ce dossier [:joce]
 
 
non la classe était dans le WEB-INF/classes du projet, vu qu'avant maven les classes étaient là
donc maven copiait betement le contenu du WEB-INF pour faire son war
en fait je pense que le clean de maven n'aurait rien changé


et il a raison de le faire.


---------------
my flick r - Just Tab it !
n°2031258
zapan666
Tout est relatif
Posté le 21-10-2010 à 19:55:36  profilanswer
 

basketor63 a écrit :

putain mais java ...
 
en C à l'éxécution ça aurait pété direct si tu mélanges des obj qui ne sont pas linkés ensemble


bah c'est normal (bis repetitas).  
http://stackoverflow.com/questions [...] at-runtime


---------------
my flick r - Just Tab it !
n°2031261
the real m​oins moins
Posté le 21-10-2010 à 20:23:37  profilanswer
 

masklinn a écrit :


Et donc tu l'appelles en faisant

Code :
  1. getParameter("foo", request, Order.class)

.

 

Tu gagnes quoi par rapport à

Code :
  1. Order.valueOf(getParameter("foo", request))


?
(ou mieux,

Code :
  1. Order.valueOf(request.getParameter("foo" ))

)


à priori, Order.class est pas fixe, mais entre son truc et Enum.valueOf(request.getParameter("foo" ), Order.class) et ce que tu proposes, je vois pas l'interet de l'indirection non plus :D
à part si c'est pour induire un team de noobs en erreur en leur laissant croire que ces methodes n'existent pas dans l'api de base [:idee]


Message édité par the real moins moins le 21-10-2010 à 20:24:09

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2031287
basketor63
Sarkozy en prison
Posté le 21-10-2010 à 22:39:36  profilanswer
 

zapan666 a écrit :

et il a raison de le faire.

 

non il devrait gueuler

 

il est censé prendre les .class du target/classes qui est le repertoire par défaut avec la config maven, et les mettre dans le web-inf/classes du war de la webapp

 

quand il copie le contenu du web-inf du projet il devrait réaliser à un moment ou un autre que des fichiers sont en conflit

 

java au runtime peut marcher avec des class qui sont pas du meme build tant que les signatures sont compatibles, ce qui sera plus dur à faire avec des .o pour du C. La comparaison n'a pas trop de sens de toutes façons, mais pour moi j'aurai du être averti avant.

 


 

ça n'a rien à voir avec le problème dont je parle

  


Message édité par basketor63 le 21-10-2010 à 22:45:29
n°2031317
84mickael
Posté le 22-10-2010 à 07:32:15  profilanswer
 

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

n°2031357
basketor63
Sarkozy en prison
Posté le 22-10-2010 à 10:44:45  profilanswer
 

Quelle est la bonne approche pour éviter les problème de dépendance circulaire lors de l'injection ?

 

cas de base, par exemple

 
Code :
  1. @repository
  2. @transactional
  3. public class A implements IA {
  4.    @autowired
  5.    private IA a;
  6.   int i = 0;
  7.   public void bla(){ i++; }
  8.     public void blo(){ a.bla(); }
  9. }
 

dans certains cas this. pourrait suffir plutot que a. mais ça veut dire que this. appelle directement l'instance alors que a. passera pas le proxy.
Donc on squize potentiellement des configurations de transaction spéficiques aux méthodes non ?

 

Le cas du dessus pète à l'injection il dit ne pas trouver A.
Je me disais qu'il pouvait se contenter d'injecter le proxy de A.

 

de même on peut imaginer que certains services aient besoin d'en appeller d'autres pour pas avoir à dupliquer du code, mais on peut tomber des dépendances circulaires genre
A injecté dans B
B injecté dans C
C injecté dans A

 

je trouve ça dommage que ça déconne à l'injection, car finalement à l'usage ça parait pas absurde
ou alors il faudrait se passer d'injection et introduire une dépendance à Spring

 

public void blo(){ (IA)Springcontext.get("a" ).bla(); }


Message édité par basketor63 le 22-10-2010 à 10:53:44
n°2033068
basketor63
Sarkozy en prison
Posté le 29-10-2010 à 12:30:20  profilanswer
 

j'ai un environnement sans spring
la data source est configurée et instanciée par struts
on peut la récupérer dans la request
est ce qu'il y a moyen de donner cette datasource à Sping ?

n°2033070
zapan666
Tout est relatif
Posté le 29-10-2010 à 12:41:51  profilanswer
 

Spring, il "appelle" juste des setters (grosso modo).
Ce que tu peux faire avec, tu peux le faire sans.


---------------
my flick r - Just Tab it !
n°2033096
basketor63
Sarkozy en prison
Posté le 29-10-2010 à 13:43:39  profilanswer
 

oui enfin j'ai pas demandé de l'aide pour enfoncer une porte ouverte lol


Message édité par basketor63 le 29-10-2010 à 13:44:26
n°2033135
basketor63
Sarkozy en prison
Posté le 29-10-2010 à 15:03:59  profilanswer
 

bon ma meilleur option semble être de mettre la datasource struts dans jndi de façon programatique de façon à ce que hibernate la recupère dans jndi

 

par contre ça me parait pas simple de mettre un objet dans jndi :/

 

edit: bon j'ai réussit au prix d'une prise de tête collosale :D

 


Message édité par basketor63 le 29-10-2010 à 17:07:24
n°2034019
LeRiton
Posté le 04-11-2010 à 15:36:30  profilanswer
 

Generics :fou:
 
J'ai une méthode qui prend en paramètre un Class<?> et instancie un objet de la classe en question, je lui passe invariablement le même type de classes, Foo1, Foo2, etc.
 
Deux choses :
 
- c'est possible de paramétrer une classe avec la valeur d'une enum ?

Code :
  1. public enum Lalas { LALA, LULU }
  2.  
  3. public class Tutu<E extends Enum<Lalas>> // Ça compile, mais je suppose que dans ce cas, Tutu est paramètré par Lalas, pas par sa valeur, non ?


 
- si la question précédente est OK, comment passer à ma méthode qui prend un Class<?> un Tutu déjà paramétré, du style Tutu<LALA>.class (qui ne compile pas BTW) ? Sous réserve d'une syntaxe correcte, la méthode en question instanciera-t-elle une classe correctement paramétrée ?
 
Discussions, critiques, insultes...

n°2034040
nraynaud
lol
Posté le 04-11-2010 à 17:20:15  profilanswer
 

attention chérie, ça va décoiffer.
Alors dire "je veux une enum en paramètre" c'est pas simple parce que le type de Enum est récursif, donc tu peux pas l'écrire.
Mais le fait qu'il soit impossible à écrire directement ne veux pas dire que tu peux pas le faire comprendre (et synthétiser) par le compilateur :  

Code :
  1. public static <T extends Enum<T>> T getOneInstance(final Class<T> clazz) {
  2.  return clazz.getEnumConstants()[0];
  3. }


---------------
trainoo.com, c'est fini
n°2034101
LeRiton
Posté le 05-11-2010 à 08:35:59  profilanswer
 

[:baragor]
 
Va me falloir de la mise en situation là.
 
Soit ma méthode (framework, j'ai pas la main dessus) a appeler
 

Code :
  1. public void picaboo(final Class<?> boo);


 
Soient les classes Tutu, Tata et Toto, qui ont toutes beaucoup en commun et que je passe à picaboo.
 
Je veux refactorer Tutu / Tata / Toto :
 

Code :
  1. public class Boo<WTF Generics> {
  2.  
  3.    private <WTF Generics> boo;
  4.  
  5.    public enum Boos {
  6.        TUTU, TATA, TOTO
  7.    }
  8. }


 
Je ne vois pas où se greffe ta méthode. Je me doute (?) que dans mon cas, c'est dans la classe Boo mais je comprend pas le mécanisme, ni la façon dont avec ça, je pourrais appeler Boo<Boos.TUTU>.class par exemple.

n°2034121
zapan666
Tout est relatif
Posté le 05-11-2010 à 09:50:39  profilanswer
 


package


---------------
my flick r - Just Tab it !
n°2034130
masklinn
í dag viðrar vel til loftárása
Posté le 05-11-2010 à 10:18:58  profilanswer
 


Bah oui, package. Java a 4 niveaux de visibilité, pas 3.

Modifier      Class   Package   Subclass   World
public        Y       Y         Y          Y
protected     Y       Y         Y          N
no modifier   Y       Y         N          N
private       Y       N         N          N

Message cité 1 fois
Message édité par masklinn le 05-11-2010 à 10:20:09

---------------
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°2034164
nraynaud
lol
Posté le 05-11-2010 à 11:23:57  profilanswer
 

LeRiton a écrit :

[:baragor]
 
Va me falloir de la mise en situation là.
 
Soit ma méthode (framework, j'ai pas la main dessus) a appeler
 

Code :
  1. public void picaboo(final Class<?> boo);


 
Soient les classes Tutu, Tata et Toto, qui ont toutes beaucoup en commun et que je passe à picaboo.
 
Je veux refactorer Tutu / Tata / Toto :
 

Code :
  1. public class Boo<WTF Generics> {
  2.  
  3.    private <WTF Generics> boo;
  4.  
  5.    public enum Boos {
  6.        TUTU, TATA, TOTO
  7.    }
  8. }


 
Je ne vois pas où se greffe ta méthode. Je me doute (?) que dans mon cas, c'est dans la classe Boo mais je comprend pas le mécanisme, ni la façon dont avec ça, je pourrais appeler Boo<Boos.TUTU>.class par exemple.


J'arrive pas à comprendre, tu peux donner plus de contexte stp ?


---------------
trainoo.com, c'est fini
n°2034183
LeRiton
Posté le 05-11-2010 à 11:49:27  profilanswer
 

OK, ça va pas être simple.
 
Picaboo dans les exemples précédents, c'est le constructeur d'un Intent Android :
 

Code :
  1. public Intent(android.content.Context packageContext, java.lang.Class<?> cls)


 
Si tu ne connais pas Android, en gros, un Intent sers à spécifier la classe qui sera la "prochaine étape" de ton appli. Imagine une fenêtre courante, tu appuie sur un bouton pour passer à l'étape suivante. L'évènement du bouton va construire un Intent et le déclencher, l'Intent se sert du dernier paramètre (le fameux Class<?> de mes exemples) pour savoir quel type de fenêtre (donc les classes de ton appli, qui étendent le type Activity d'Android) il doit instancier / démarrer / afficher. Les classes en question n'ont pas de constructeur mais une méthode onCreate().
 
Maintenant, j'ai de nombreuses classes à passer en paramètre de ce truc qui ont vraiment un fort potentiel à refactoring (Tutu, Tata et Toto dans mon exemple précédent). Je veux donc une classe globale (le Boo de mon exemple précédent) qui fasse tout ça, que je veux pouvoir "typer". Boo est en fait une "fenêtre" de mon appli, et les fenêtres en question ont une logique commune, à quelques constantes près. Et comme ce qui varie entre chacune de mes classes initiales est uniquement un lots de constantes, j'ai pensé à une classe mère typée par une enum. Donc pour reprendre l'exemple précédent :
 

Code :
  1. public class Fenetre<WTF Generics> {
  2.  
  3.         private <WTF Generics> fen;
  4.  
  5.         public Object thisFenCst1() {
  6.             return fen.cst1;
  7.         }
  8.  
  9.         public enum Fenetres {
  10.             FENETRE_1(cst1_fen1, cst2_fen1),
  11.             FENETRE_2(cst1_fen2, cst2_fen2),
  12.             ...
  13.         }
  14.      }


 
Et qui me permettrais lors de la construction de mon Intent (donc annonce de ma prochaine "fenêtre" ) de dire "déclenche une méta-fenêtre de type LALA", d'où la synatxe de l'appel qui serait :
 

Code :
  1. new Intent(toto, Fenetre<Fenetres.FENETRE_1>.class)


 
En réalité, c'est pas des fenêtre parce qu'il y aurait forcément un moyen plus intelligent de factoriser un élément graphique, mais je peux pas mieux résumer le mécanisme.

n°2034189
nraynaud
lol
Posté le 05-11-2010 à 12:00:40  profilanswer
 

désolé, j'y arrive toujours pas :/
Je vais passer, je suis pas en état, peut-être quelqu'un d'autre peut regarder ça.


---------------
trainoo.com, c'est fini
n°2034246
LeRiton
Posté le 05-11-2010 à 14:23:30  profilanswer
 

:(  
 
Merci d'avoir essayé. Tu peux me dire où ça coince ? Quelqu'un d'autre, ou justement personne si je ne suis pas clair ?

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  280  281  282  ..  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)