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

  FORUM HardWare.fr
  Programmation
  Java

  Les histoires de tonton benou : l'invocation dynamique

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Les histoires de tonton benou : l'invocation dynamique

n°182201
benou
Posté le 24-07-2002 à 23:02:43  profilanswer
 

[:tonton_benou]
 
sur la demande de CherryTree, aujourd'hui, on va parler de l'invocation dynamique : c'est quoi dont, comment ca marche et à quoi ca sert ?
 
Avant de parler d'unvocation dynamique, il faut déjà connaître l'introspection. L'introspection c'est le fait d'intéroger un objet sur sa nature. C'est à dire lui demander : à quoi tu ressemble ? qu'est ce que tu sais faire ? t'es de quel type ?
 
Ensuite, l'invocation dynamique, ca permet d'agir sur cette objet : "tu sais faire ca ? et ben très bien, fait le !" ou encore, "t'es de ce type là ? bon ben je voudrais bien un autre comme toi"
 
Exemple : on va écrire un programme qui liste les méthodes d'une objet
 

Code :
  1. package tontonbenou.invocdyn;
  2. import java.lang.reflect.*;
  3. public class Test {
  4.    public static void main (String[] leopard) {
  5.      
  6.       String unObjectQuelconque = "je suis quelconque";
  7.      
  8.       // C'est quoi ton type ?
  9.       Class type = unObjectQuelconque.getClass();
  10.       System.out.println("Type de l'objet : " + type.getName());
  11.      
  12.       //Qu'est ce que tu sais faire ?
  13.       Method[] capacites = type.getMethods();
  14.       for (int i=0; i < capacites.length; i++) {
  15.  System.out.println("Il peut faire ca : " + capacites[i].getName());
  16.       }
  17.    }
  18. }


 
Ici, on a récupérer l'objet Class qui correspond au type de l'objet avec la méthode getClass(). Enuiste on peut faire plein de trucs à partir ce cet objet Class : demander quels sont les méthodes de la class, les attriuts, les constructeurs, etc ...
 
Dans l'exemple du dessus, on a demander à connaîtres ses méthodes : on a récupéré un t'ableau d'objets Method (java.lang.reflect.Method). Si on avait voulu, on aurait pu obtenir des informations sur cette méthode : ses modificateurs (public, privé, static final ?) ou la liste des ses paramètres, etc ...
 
dans l'exemple suivant, on va faire un programme un peu plus complexe : on va demander à l'utilisateur de choisir la méthode à executer sur sur un objet ...
 
Bon attention, c'est assez énorme ! et peut être un peu complexe, mais c'est un bon exemple de ce qu'on peut faire avec l'invocation dynamique.
Le plus simple c'est de faire un copier coller du code dans votre ide préféré ce sera plus simple à lire ! ;)
 

Code :
  1. package tontonbenou.invocdyn;
  2. import java.lang.reflect.*;
  3. import java.io.*;
  4. import java.util.*;
  5. public class Test2 {
  6.    public static void main (String[] leopard) throws Exception {
  7.       boucleSansFin:
  8.       while (true) {
  9.          // voici l'objet sur lequel on va appeler les methodes
  10.          Object objet = "Les histoires de tonton benou";
  11.          Class classe = objet.getClass();
  12.        
  13.          System.out.println("voici un objet de type " + classe.getName() +
  14.                             " : '" + objet + "'" );
  15.          // on recupere toutes les methodes de la classe
  16.          Method[] toutesLesMetodes = classe.getMethods();
  17.          // on ne va selectionner que les methodes non static :
  18.          ArrayList tmp = new ArrayList();
  19.          for (int i=0; i < toutesLesMetodes.length; i++) {
  20.             if (! Modifier.isStatic(toutesLesMetodes[i].getModifiers())) {
  21.                tmp.add(toutesLesMetodes[i]);
  22.             }
  23.          }
  24.          Method[] metodes = new Method[tmp.size()];
  25.          for (int i=0; i < tmp.size(); i++) {
  26.             metodes[i] = (Method) tmp.get(i);
  27.          }
  28.          // on les affiches         
  29.          System.out.println("Voici la liste des metodes de l'objet :" );
  30.          for (int i=0; i < metodes.length; i++ ) {
  31.             System.out.println(" " + i + " - " + metodes[i].getName());
  32.          }
  33.          // on demande à l'utilisateur d'en choisir une
  34.          System.out.print("Quelle methode voulez vous appeler ? num : " );
  35.          System.out.flush();
  36.        
  37.          BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in));
  38.          int num = Integer.parseInt(clavier.readLine()); // on va dire qu'il saisit bien un chiffre ;)
  39.          if (num==-1) {
  40.             break boucleSansFin; // fin du programme !
  41.          }
  42.          Method metodeAAppeler = metodes[num];
  43.          // il faut maintenant demander à l'utilisateur de saisir la liste des  
  44.          // paramètres de la méthode
  45.          // => on récupère les types de paramètres
  46.          Class[] paramsTypes = metodeAAppeler.getParameterTypes();
  47.        
  48.          // On déclare un tableau d'objet qui contiendra les valeurs des paramètres
  49.          Object params[] = new Object[paramsTypes.length];
  50.          if (paramsTypes.length != 0) {
  51.             System.out.println("Veillez indiquer les paramètres :" );
  52.             for (int i=0; i < paramsTypes.length; i++) {
  53.                System.out.print("parametre " + (i+1) + " (type " +
  54.                                 paramsTypes[i].getName() + " ) : " );
  55.                System.out.flush();
  56.                Object param = clavier.readLine();
  57.              
  58.                // le problème c'est que là on récupère une String alors qu'on
  59.                // eut un objet du type paramsTypes[i]
  60.              
  61.                // on va donc essayer de transformer le paramètre dans le type demandé
  62.                // en utilisant la methode static valueOf (en esperant qu'elle existe)
  63.                // mais il faut d'abord gérer quelques cas d'exception :
  64.                // ... si c'est un char ou Character, pas de method valueOf
  65.                if ((paramsTypes[i] == char.class) || (paramsTypes[i] == Character.class)) {
  66.                   param = new Character(((String) param).charAt(0));
  67.                }
  68.                // si c'est une String ou un Object, y a rien à faire
  69.                else if ((paramsTypes[i] != String.class) && (paramsTypes[i] != Object.class)) {
  70.                   try {
  71.                      Class paramsType = paramsTypes[i];
  72.                      // il faut gérer le cas des types primitifs ...
  73.                      // dans ces cas là, on utilise le Wrapper
  74.                      if (paramsType == boolean.class) paramsType = Boolean.class;
  75.                      else if (paramsType == byte.class) paramsType = Byte.class;
  76.                      else if (paramsType == char.class) paramsType = Character.class;
  77.                      else if (paramsType == short.class) paramsType = Short.class;
  78.                      else if (paramsType == int.class) paramsType = Integer.class;
  79.                      else if (paramsType == long.class) paramsType = Long.class;
  80.                      else if (paramsType == float.class) paramsType = Float.class;
  81.                      else if (paramsType == double.class) paramsType = Double.class;
  82.                    
  83.                      // bon là j'ecris tout en une ligne, c'est moche, je sais ...
  84.                      // (en fait, j'invoke la methode valueOf et je récupère le resultat)
  85.                      param = paramsType.getMethod("valueOf", new Class[]{param.getClass()})
  86.                                        .invoke(null, new Object[]{param});
  87.                   } catch (Exception e) {
  88.                      // ca a pas marché. l'utiliosateur a du taper une mauvaise valeur => on recommence
  89.                      System.out.println("impossible de transformer '" + param + "' en " + paramsTypes[i].getName());
  90.                      i--; continue;
  91.                   }
  92.                }
  93.                params[i] = param;
  94.             }
  95.          }
  96.        
  97.          // maintenant, il ne reste plus qu'à apeller la méthode
  98.          Object valeurRetour = null;
  99.          try {
  100.             valeurRetour = metodeAAppeler.invoke(objet, params);
  101.          } catch (Exception e) {
  102.             System.out.println("L'invocation dynamique de la metode " +
  103.                                metodeAAppeler.getName() + " a provoque l'exception suivante : " + e);
  104.             e.printStackTrace();
  105.             System.out.println("<< Appuyer sur entree >>" );
  106.             clavier.readLine();
  107.             continue boucleSansFin;
  108.          }
  109.        
  110.          // on affiche le résultat si il y en a un :
  111.          if (metodeAAppeler.getReturnType() == void.class) {
  112.             System.out.println("La metode a ete invoquee  mais n'a pas de valeur de retour" );
  113.          }
  114.          else {
  115.             System.out.println("La metode a retourne la valeur : '" + valeurRetour + "' de type " +
  116.                                valeurRetour.getClass().getName());
  117.          }
  118.          System.out.println("<< Appuyer sur entree >>" );
  119.          clavier.readLine();
  120.       }
  121.    }
  122. }


 
Je m'arrête là pour le moment (j'ai faim). Si vous avez des questions ou que vous voulez que j'aille plus loin dites le ...
 
 

mood
Publicité
Posté le 24-07-2002 à 23:02:43  profilanswer
 

n°182202
schnapsman​n
Zaford Beeblefect
Posté le 24-07-2002 à 23:15:57  profilanswer
 

t'aurais pu parler du rmi en même temps, parce que la l'invocation dynamique toute seule c'est un peu de la  [:ryo]  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
enfin bon bel effort quand même  ;)


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°182205
benou
Posté le 24-07-2002 à 23:21:52  profilanswer
 

SchnapsMann a écrit a écrit :

t'aurais pu parler du rmi en même temps, parce que la l'invocation dynamique toute seule c'est un peu de la  [:ryo]  




:??: hein ?
 
où tu as vu que l'invocation dynamique ne servait qu'avec rmi ?
Est tu sur de savoir de quoi tu parles ?
 
et pui si tu as des préisions ajouter sur le sujet, ce topic t'es ouvert

n°182209
schnapsman​n
Zaford Beeblefect
Posté le 24-07-2002 à 23:30:10  profilanswer
 

benou a écrit a écrit :

 
:??: hein ?
 
où tu as vu que l'invocation dynamique ne servait qu'avec rmi ?
Est tu sur de savoir de quoi tu parles ?
 
et pui si tu as des préisions ajouter sur le sujet, ce topic t'es ouvert




 
je ne dis pas que ca ne peut servir qu'avec rmi... je dis juste que dans d'autres contextes je n'y vois pas de réelle utilité, hormis la beauté intrinsèque de l'invocation dynamique, le tout en utilisant un class loader pour charger des classes plugins de folie dans des applis java mo - du - laires [:sobebra]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°182212
benou
Posté le 24-07-2002 à 23:34:42  profilanswer
 

SchnapsMann a écrit a écrit :

 
je ne dis pas que ca ne peut servir qu'avec rmi... je dis juste que dans d'autres contextes je n'y vois pas de réelle utilité.



on est d'accord.
mais il y en a. et plein ! dans les 3 premières pages de ce forum tu trouveras 2 topics qui parlent d'invocation dynamique et qui n'ont rien à voir avec RMI ...

n°182215
schnapsman​n
Zaford Beeblefect
Posté le 24-07-2002 à 23:39:03  profilanswer
 

benou a écrit a écrit :

 
on est d'accord.
mais il y en a. et plein ! dans les 3 premières pages de ce forum tu trouveras 2 topics qui parlent d'invocation dynamique et qui n'ont rien à voir avec RMI ...




 
hormis la beauté intrinsèque de l'invocation dynamique, le tout en utilisant un class loader pour charger des classes plugins de folie dans des applis java mo - du - laires  [:sobebra]  
 
j'avais bien compris [:snake12]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°182220
Cherrytree
cn=?
Posté le 24-07-2002 à 23:44:00  profilanswer
 

SchnapsMann a écrit a écrit :

...


C'est bien la peine que benou vienne donner un cours. Voilà donc les élèves de maintenant, toujours à raler... Sincèrement, benou, tes explications sont de plus en plus claires et précises, c'est vraiment un régal, pour qui veut se donner la peine de lire et de se laisser entraîner dans l'univers que tu tisses pour nous. Merci encore, tonton.
[:tonton_benou]


---------------
Le site de ma maman
n°182221
benou
Posté le 24-07-2002 à 23:44:31  profilanswer
 

en relisant, je m'aperçoit que j'ai pas trop parlé de l'intérêt de l'invocation dynamique.
 
Il y a vraiment beaucoup d'exemple d'utilisation possible, je vais juste en siter quelques uns :
 
 - aiguillage d'une application (applet par exemple) en fonction de la version de la JVM installée
 - utilisation de classes développées après le programme principal (extensions des fonctionnalités d'un logiciel)
 - intéraction avec un programme en cours d'execution (exemple : context 'manager' de tomcat)
 - chargement et utilisation de classes en cours d'execution d'un programme (exemple : RMI)
 - écriture de programme intégrant du scripting
 - etc ...

n°182224
benou
Posté le 24-07-2002 à 23:46:26  profilanswer
 

SchnapsMann a écrit a écrit :

 
 
hormis la beauté intrinsèque de l'invocation dynamique, le tout en utilisant un class loader pour charger des classes plugins de folie dans des applis java mo - du - laires  [:sobebra]  
 
j'avais bien compris [:snake12]  




mais c'est qu'il deviendrait presque pénible...

n°182226
benou
Posté le 24-07-2002 à 23:49:12  profilanswer
 

Cherrytree a écrit a écrit :

Sincèrement, benou, tes explications sont de plus en plus claires et précises




ouais ben moi j'ai pas trouvé que j'avais été très clair: je vous ai balancé un gros exemple bien compliqué et j'ai pas expliqué/détaillé grand chose ...
 
C'est un sujet un peu vaste alors je préfère que vous posiez des questions si y a des trucs que vous avez pas bien pigé ...

mood
Publicité
Posté le 24-07-2002 à 23:49:12  profilanswer
 

n°182300
Cherrytree
cn=?
Posté le 25-07-2002 à 03:19:41  profilanswer
 

benou a écrit a écrit :

 
ouais ben moi j'ai pas trouvé que j'avais été très clair: je vous ai balancé un gros exemple bien compliqué et j'ai pas expliqué/détaillé grand chose ...
 
C'est un sujet un peu vaste alors je préfère que vous posiez des questions si y a des trucs que vous avez pas bien pigé ...



Je te poserai les questions demain ou après demain, le temps que ça décante. J'ai l'impression d'avoir tout compris, tu sais.


---------------
Le site de ma maman
n°182310
El_gringo
Posté le 25-07-2002 à 08:43:55  profilanswer
 

benou a écrit a écrit :

 
ouais ben moi j'ai pas trouvé que j'avais été très clair: je vous ai balancé un gros exemple bien compliqué et j'ai pas expliqué/détaillé grand chose ...
 
C'est un sujet un peu vaste alors je préfère que vous posiez des questions si y a des trucs que vous avez pas bien pigé ...




 
J'ai l'impression que l'invoquation dynamique n'offre pas de nouvelles possibilités, que c juste une manière plus jolie de faire les choses.
Parce que, par exemple, pr le contexte manager par exemple, il est tout autant possible d'invoquer "statiquement" les méthodes, après un aiguillage pas des if else.
Moins beau, je te l'accorde !
D'ailleurs je crois que mainetnant que g bien compris comment ça marche, je vais introduire ce mécanisme ds ma servlet...

n°182319
darklord
You're welcome
Posté le 25-07-2002 à 09:02:11  profilanswer
 

benou >>> :jap:
 
Tu seras notre rédacteur de news sur le site :)


---------------
Just because you feel good does not make you right
n°182332
benou
Posté le 25-07-2002 à 09:25:05  profilanswer
 

el_gringo a écrit a écrit :

 
 
J'ai l'impression que l'invoquation dynamique n'offre pas de nouvelles possibilités, que c juste une manière plus jolie de faire les choses.
Parce que, par exemple, pr le contexte manager par exemple, il est tout autant possible d'invoquer "statiquement" les méthodes, après un aiguillage pas des if else.
Moins beau, je te l'accorde !
D'ailleurs je crois que mainetnant que g bien compris comment ça marche, je vais introduire ce mécanisme ds ma servlet...




 
Sisi, ca offre énormément de nouvelle possibilités : tu ne peux pas toujours savoir au moment où tu écris du code le nom des Classes et des méthodes sur lesquels tu devras agir ...
 
par exemple, si tu prend le programpme que j'ai donné, je me sers d'une String comme objet sur lequel faire mes appels dynamique. c'est vrai que la opn aurait pu faire des gros if parce qu'on connait les méthodes de cet objet, mais j'aurais très bien pu au début du programme demander le nom d'une classe (n'iporte laquelle), crééer une instance de cette classe, et appaler des méthodes deçu. Ca tu ne peux pas le faire avec des if !


Message édité par benou le 25-07-2002 à 09:29:03
n°182341
benou
Posté le 25-07-2002 à 09:29:19  profilanswer
 

DarkLord a écrit a écrit :

benou >>> :jap:
 
Tu seras notre rédacteur de news sur le site :)




ca marche ! :) :)

n°182362
bobuse
Posté le 25-07-2002 à 09:44:40  profilanswer
 

Quel régal cette confiture !  ;)  
Non sans dec', j'ai pas encore étudié le deuxième bout de code (le "gros" ), mais rien que ce t'expliques avant, on comprend tout ! Et ça m'a l'air trop puissant, je savais que ça existait, mais j'imaginais pas exactement comment le mettre en oeuvre, et on trouve pas beaucoup de doc. la-dessus  :jap:  :jap:  
 
Merci et merci ! En plus, je pense qu'autour de moi, y en a d'autres que ça va interresser !
 
Je pense que je faire murir ton bout de code, le tourner dans tous les sens, et après ... j'espère que tu seras là pour répondre aux questions  :D  :D

n°182387
benou
Posté le 25-07-2002 à 10:04:17  profilanswer
 

je suis comme les scouts : toujours prêt : :D

n°182392
El_gringo
Posté le 25-07-2002 à 10:08:33  profilanswer
 

benou a écrit a écrit :

 
 
Sisi, ca offre énormément de nouvelle possibilités : tu ne peux pas toujours savoir au moment où tu écris du code le nom des Classes et des méthodes sur lesquels tu devras agir ...
 
par exemple, si tu prend le programpme que j'ai donné, je me sers d'une String comme objet sur lequel faire mes appels dynamique. c'est vrai que la opn aurait pu faire des gros if parce qu'on connait les méthodes de cet objet, mais j'aurais très bien pu au début du programme demander le nom d'une classe (n'iporte laquelle), crééer une instance de cette classe, et appaler des méthodes deçu. Ca tu ne peux pas le faire avec des if !




 
Comme prof, en java, c vrai que c bien agréable de te lire.
Par contre, on va pas te demander des cours d'orthographe ! :D

n°182397
benou
Posté le 25-07-2002 à 10:10:56  profilanswer
 

el_gringo a écrit a écrit :

 
 
Comme prof, en java, c vrai que c bien agréable de te lire.
Par contre, on va pas te demander des cours d'orthographe ! :D
 




:) vaut mieux pas !!! ;)
 
et puis bon, ca me fait chier de me relire : j'écris et je valide, alors entre les fautes de frappes et les fautes d'orthographes ... :sarcastic:

n°182404
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-07-2002 à 10:18:13  profilanswer
 

benou a écrit a écrit :

 

Code :
  1. package tontonbenou.invocdyn;
  2. import java.lang.reflect.*;
  3. public class Test {
  4.    public static void main (String[] leopard) {
  5.      
  6.       String unObjectQuelconque = "je suis quelconque";


 




[:rofl]


Message édité par Harkonnen le 25-07-2002 à 10:18:48

---------------
J'ai un string dans l'array (Paris Hilton)
n°182429
benou
Posté le 25-07-2002 à 10:35:13  profilanswer
 

Harkonnen a écrit a écrit :

 
[:rofl]




ca m'étonnait que personne l'ait vu ... :D :D

n°182431
bobuse
Posté le 25-07-2002 à 10:39:36  profilanswer
 

benou a écrit a écrit :

 
ca m'étonnait que personne l'ait vu ... :D :D




Bon assez rigolé !
 
Le site : vous faites comment finalement ?
qui héberge ?
en php ? qui s'y colle ?
l'habillage -> ok !
 
redaction ? reprise des topics du forum ?
 
specif., cahier des charges, planning ... et tout et tout ! :D  
 
allez allez, faut que ça tourne !  :hap:

n°182441
Cherrytree
cn=?
Posté le 25-07-2002 à 10:55:24  profilanswer
 

L'interface -> OK.
Si vous voulez on peut l'héberger sur mon compte free, vu que mon site prends pas énormément de place. Avec une redirection Ulimit, rulez. Il faudrait avoir le maximum de liberté, mais pour la beauté du geste, il faudrait éventuellement qu'à chaque article soit associé un relecteur, pour retravailler au moins l'orthographe (pour benou, ça me parait obligatoire, et ça ne me dérange pas d'être ton relecteur). Ensuite il faut savoir ce qu'on met dans le site :
- une JavaFAQ
- des articles
- Quoi d'autre ? (que voulez faire de ce site ?)
Quelle doit être l'esprit : sérieux ? franche camaraderie ? Humour string léopard (la croisière Java@HFR s'amuse) ? Chacun son style ?
Va t'il y avoir beaucoup d'articles. Si c'est un article par semaine, HTML me parait approprié : seulement une page à modifier et une à ajouter... Alors que PHP, faut gérer l'upload, surtout si on veut réaliser des textes accompagnés de graphiques, bref la merde, si on veut tout automatiser... Est-ce donc un bon choix ?
Voilà pèle-mèle les idées qui me tournent dans la tête.


---------------
Le site de ma maman
n°182442
darklord
You're welcome
Posté le 25-07-2002 à 10:55:52  profilanswer
 

Dans un premier temps, je propose les étapes suivantes:
 

  • Rassembler les noms / adresses mails des personnes qui souhaitent y travailler
  • Créer une ML pour les problèmes / questions que l'on pourrait avoir concernant le site
  • Créer un template pour un problème typique (énoncé du problème, solution). Un peu comme les templates des articles sur hardware.fr


 
Une fois qu'on a ces templates, je suggère que chaque personne rassemble ses expériences personnelles du forum ou hors forum et les rédige dans ces fameux templates et exit les zozos avec:
 
comment faire pour lancer un .bat depuis java
comment faire un .exe de mon prog Java
etc etc
 
On pourrait aussi faire un forumlaire ou l'internaute décrit son problème et on y répondrai + ajout dans la base du site.
 


---------------
Just because you feel good does not make you right
n°182443
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-07-2002 à 10:57:57  profilanswer
 

Et ça vous dirait de faire la même chose pour .NET ou MFC ? :d


---------------
J'ai un string dans l'array (Paris Hilton)
n°182444
Cherrytree
cn=?
Posté le 25-07-2002 à 10:58:22  profilanswer
 

DarkLord a écrit a écrit :

Dans un premier temps, je propose les étapes suivantes:
 

  • Rassembler les noms / adresses mails des personnes qui souhaitent y travailler
  • Créer une ML pour les problèmes / questions que l'on pourrait avoir concernant le site
  • Créer un template pour un problème typique (énoncé du problème, solution). Un peu comme les templates des articles sur hardware.fr


 
Une fois qu'on a ces templates, je suggère que chaque personne rassemble ses expériences personnelles du forum ou hors forum et les rédige dans ces fameux templates et exit les zozos avec:
 
comment faire pour lancer un .bat depuis java
comment faire un .exe de mon prog Java
etc etc
 
On pourrait aussi faire un forumlaire ou l'internaute décrit son problème et on y répondrai + ajout dans la base du site.
 



Euh d'accord avec tout le reste, mais ce dernier item ne vient pas en doublon du forum HFR, sur lequel on s'appuie ?


---------------
Le site de ma maman
n°182445
Cherrytree
cn=?
Posté le 25-07-2002 à 10:58:51  profilanswer
 

Harkonnen a écrit a écrit :

Et ça vous dirait de faire la même chose pour .NET ou MFC ? :d



Le faire non, mais le lire, volontiers !


---------------
Le site de ma maman
n°182451
darklord
You're welcome
Posté le 25-07-2002 à 11:03:43  profilanswer
 

Cherrytree a écrit a écrit :

Euh d'accord avec tout le reste, mais ce dernier item ne vient pas en doublon du forum HFR, sur lequel on s'appuie ?




 
Par forumlaire je voudrais obliger les gens à remplir les champs stacktrace et compagnie ...
 
Mais bon c'est assez vrai ce que tu dis. Laisons tomber


---------------
Just because you feel good does not make you right
n°182455
Cherrytree
cn=?
Posté le 25-07-2002 à 11:09:25  profilanswer
 

DarkLord a écrit a écrit :

 
 
Par forumlaire je voudrais obliger les gens à remplir les champs stacktrace et compagnie ...
 
Mais bon c'est assez vrai ce que tu dis. Laisons tomber



:jap: Mieux vaut rédiger un article expliquant la résolution des problèmes (à la rapide) en éduquant le gusse pour qu'il pense à ajouter le stacktrace de lui-même.


---------------
Le site de ma maman
n°182457
bobuse
Posté le 25-07-2002 à 11:11:22  profilanswer
 

Je pense que ça pourrait servir à déposer également des classes interressantes ou utiles, histoire de pouvoir recycler des trucs ...
Je suis d'accord avec Cherytree : il ne faut pas faire de 2ème forum, sinon ça va être la merde ... :-/
 
EDIT :  reformulation de mon posten langage compréhensible


Message édité par bobuse le 25-07-2002 à 11:12:24
n°182487
Cherrytree
cn=?
Posté le 25-07-2002 à 11:33:58  profilanswer
 

bobuse a écrit a écrit :

Je pense que ça pourrait servir à déposer également des classes interressantes ou utiles, histoire de pouvoir recycler des trucs ...
Je suis d'accord avec Cherrytree : il ne faut pas faire de 2ème forum, sinon ça va être la merde ... :-/
 
EDIT :  reformulation de mon posten langage compréhensible



(manquait un r : c'est pour antp -> spécial dédicasse ;)) Sinon, l'idées des classes utiles, ouais, c'est une bonne idée.


---------------
Le site de ma maman
n°182491
benou
Posté le 25-07-2002 à 11:36:37  profilanswer
 

bobuse a écrit a écrit :

Je pense que ça pourrait servir à déposer également des classes interressantes ou utiles, histoire de pouvoir recycler des trucs ...



 
Entièrement d'accord : la FAQ devra s'accompagner d'exemples et de .java téléchargeables !
 
D'accord aussi pour éviter de faire un doublon avec ce forum : il faudrait que le site indique qu'on est près à répondre à toute question bien formulée sur le forum prog@HFR.
 
pour les rubriques :
 - présentation du site (le but, les acteurs, infos sur prog@HFR)
 - FAQ (les questions les plus posées sur le forum + réponses)
 - Articles (des points précis abordés de façon détaillés)
 - Utilitaires (les classes ou progs utils développés par les acteurs du site)
 - questions (une page donannt l'adresse du forum avec les indications pour poster un "bon" post : stacktrace, code, etc)
 
ce serait déjà pas mal ca non ?
 
pour la technique, on peut faire du PHP pour factoriser le travail : des include pour les headers et le sommaire, mais je pense qu'il faut rester le plus simple possible : du HTML statique tout simlpe. Il faut qu'on puisse mettre à jour le site simplement en pushant des pages HTML en FTP ... ca sera plus simple opur tout le monde je pense ...
 
sinon, pour le correcteur, si je fais des articles, je ferrai un effort sur l'orthographe, ce que je fais pas ici ...

n°182496
benou
Posté le 25-07-2002 à 11:38:25  profilanswer
 

sinon, je pense qu'on peut faire comme sur ce forum : un site à la fois sympa à lire mais sérieux quand on aborde les points techniques

n°182500
benou
Posté le 25-07-2002 à 11:40:30  profilanswer
 

J'ai oublié : il faut aussi une rubrique "Liens" qui indique les bonnes adresses pour le Java,un peu à la façon du Post FAQ java de dark ...
 
et puis une rubrique "bouquins" ce serait sympa aussi ...

n°182503
Cherrytree
cn=?
Posté le 25-07-2002 à 11:42:18  profilanswer
 

benou a écrit a écrit :

 
pour les rubriques :
 - présentation du site (le but, les acteurs, infos sur prog@HFR)
 - FAQ (les questions les plus posées sur le forum + réponses)
 - Articles (des points précis abordés de façon détaillés)
 - Utilitaires (les classes ou progs utils développés par les acteurs du site)
 - questions (une page donannt l'adresse du forum avec les indications pour poster un "bon" post : stacktrace, code, etc)


Je suis d'accord avec l'ensemble de ton post. Comme je vais essayer de proposer une belle interface, j'ai besoin de connaître les rubriques pour la navigation. Si tout le monde est d'accord sur celles ci-dessus, je commence le design ce soir (si tout se passe bien).


---------------
Le site de ma maman
n°182505
Cherrytree
cn=?
Posté le 25-07-2002 à 11:42:55  profilanswer
 

benou a écrit a écrit :

J'ai oublié : il faut aussi une rubrique "Liens" qui indique les bonnes adresses pour le Java,un peu à la façon du Post FAQ java de dark ...
 
et puis une rubrique "bouquins" ce serait sympa aussi ...



OK.


---------------
Le site de ma maman
n°182548
darklord
You're welcome
Posté le 25-07-2002 à 12:04:37  profilanswer
 

bon c'est chez qui qu'il faut envoyer les adresses emails pour faire une ML ?
 
De là on distribue les responsabilités et on discute


---------------
Just because you feel good does not make you right
n°182550
Cherrytree
cn=?
Posté le 25-07-2002 à 12:06:18  profilanswer
 

DarkLord a écrit a écrit :

bon c'est chez qui qu'il faut envoyer les adresses emails pour faire une ML ?
 
De là on distribue les responsabilités et on discute



Chez toi ? :D


---------------
Le site de ma maman
n°182556
darklord
You're welcome
Posté le 25-07-2002 à 12:10:26  profilanswer
 

fais peter (en MP)


---------------
Just because you feel good does not make you right
n°182594
MelloW
Posté le 25-07-2002 à 12:41:18  profilanswer
 

J trouve ca chouette comme concepte mais en Java je ne vois pas réellement l'utilité. La seule application utile que je connaisse de java.lang.reflect.* c'est l'utilisation qu'est fait pour les beans (http://developer.java.sun.com/deve [...] ect00.html).
Et l'introspection est assez limité dans le sense que toutes les classes de java.lang.reflect.* sont final, donc pas de redéfinition possible.


Message édité par MelloW le 25-07-2002 à 12:42:06

---------------
Belgian Connection
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Les histoires de tonton benou : l'invocation dynamique

 

Sujets relatifs
SQL - Génération dynamique close from ...[c] Structure et allocation de mémoire dynamique
menu dynamique et popup[VC++] Creation d'ID en dynamique
Menu dynamique sur des images.SQL: Cheminement dynamique
wanadoo hébergeur dynamique?ASP: Cheminement dynamique
[JAVASCRIPT] menu dynamique : besoin d'aide !!!![JAVASCRIPT] menu dynamique : besoin d'aide !!!!
Plus de sujets relatifs à : Les histoires de tonton benou : l'invocation dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR