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

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] peut on stocker des méthodes dans un tableau ou vector

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] peut on stocker des méthodes dans un tableau ou vector

n°139552
Pschitt
Posté le 15-05-2002 à 22:13:40  profilanswer
 

Du genre tableau de pointeur sur fonctions du C ou C++

mood
Publicité
Posté le 15-05-2002 à 22:13:40  profilanswer
 

n°139555
thecoin
Chasseur de chasseur de canard
Posté le 15-05-2002 à 22:17:55  profilanswer
 

Pas de pointer en Java :non:  
Fait un tableau d'objet


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
n°139561
gfive
Posté le 15-05-2002 à 22:28:15  profilanswer
 

Oui, on peut, sinon, mais bon, c'est un peu galère...Les objets Class, Method, etc, existent das l'API Java, mais tu devrais pouvoir t'en passer en utilisant l'héritage, les interfaces, etc, non??  
C'est pour quoi faire, que tu voulais stocker ça??

n°139573
Pschitt
Posté le 15-05-2002 à 23:07:35  profilanswer
 

J'ai essayé avec un tableau d'Object mais sans succès ? :
 
ex :  
 
private Object [] monTableau = {Employe.getNomEmp()};
 
Ne passe pas la compilation :  
d:\javasrc\societe\ihm\NewEmploye.java:60: non-static method getNomEmp() cannot be referenced from a static context
 private Object [] monTableau = {Employe.getNomEmp()};
 
L'intérêt est d'économiser du code :
J'ai un tableau de composants(widgets) Object [m][n] composants dans lequel sont renseignés toutes les caractéristiques de mes composants à créer et afficher.
 
Les composants sont essentiellement des Labels et TextField que je crée ainsi :
 
...
while(n != composants.length){
        panelRow.add(new  Label((String)composants[n]) );
 panelRow.add(new  TextField( ((Integer)composants[++n]).intValue() ) );
 n++;
}
...
m étant l'indice de la 2ème dimension de mon tableau, composants  
 
Jusque la pas de problème mais maintenant je dois mettre dans mes TextField des attributs d'objets.      
Pour ce faire chaque objet hérite d'une classe mère, des méthodes qui renvoyent les attributs communs à tous les objets et ce sont ces méthodes que je désirerais stocker et appeler en fonction de l'indice m de mon tableau composants.
 
Est ce clair ? :ouch:

n°139584
benou
Posté le 16-05-2002 à 00:20:44  profilanswer
 

non ce n'est pas clair.
 
par contre, ce qui est clair c'est que le problème à la compile, c'est une erreur de débutant : tu essayes d'apeller une méthode d'instance comme une méthode static. Le message du compilo est plutot clair ...
 
sinon, regarde du côté de java.lang.Class (pour récupérer les méthodes d'un objet) et java.lang.reflect.Method (pour les utiliser)


---------------
ma vie, mon oeuvre - HomePlayer
n°139601
gfive
Posté le 16-05-2002 à 08:28:51  profilanswer
 

Et bêtement, tu peux pas faire une méthode de ta classe mère qui serait, par exemple :  
 
Object getAttribute (int m)
(et éventuellement setAttribute(int i, Object o);
 
Ca me paraît beaucoup moins compliqué (et beaucoup plus performant) que d'utiliser la reflexivité, non?

n°139627
darklord
You're welcome
Posté le 16-05-2002 à 09:33:38  profilanswer
 

oui


---------------
Just because you feel good does not make you right
n°139682
Pschitt
Posté le 16-05-2002 à 10:54:29  profilanswer
 

Ok pour le pb de stockage de méthodes dans un tableau. J'ai essayé sans réfléchir, je viens de me fouetter 15 fois !  
 
Sinon faire une méthode générique pour obtenir mes attributs me paraît effectivement beaucoup + simple.
J'y avais même pensé ce matin, je vous jure que c'est vrai !
 
Merci

n°139693
benou
Posté le 16-05-2002 à 11:01:53  profilanswer
 

Pschitt a écrit a écrit :

Ok pour le pb de stockage de méthodes dans un tableau. J'ai essayé sans réfléchir, je viens de me fouetter 15 fois !  
 
Sinon faire une méthode générique pour obtenir mes attributs me paraît effectivement beaucoup + simple.
J'y avais même pensé ce matin, je vous jure que c'est vrai !
 
Merci  




moi j'aime pas trop.
 
Une bonne introspection et ca roule ! qu'est ce que tu en as à péter de l'eficacité : tu fais du swing ! ;)


---------------
ma vie, mon oeuvre - HomePlayer
n°139714
Pschitt
Posté le 16-05-2002 à 11:22:36  profilanswer
 

Pourquoi donc ?
Introspection ?
Sinon mon projet, cas d'école, n'est pas en swing mais awt(pas le choix).

mood
Publicité
Posté le 16-05-2002 à 11:22:36  profilanswer
 

n°139746
gfive
Posté le 16-05-2002 à 11:49:28  profilanswer
 

benou a écrit a écrit :

 
moi j'aime pas trop.
 
Une bonne introspection et ca roule ! qu'est ce que tu en as à péter de l'eficacité : tu fais du swing ! ;)  




 
Ouais, enfin bon...De toutes façons, il sera toujours embêté pour faire l'association numéro-> méthode ou attribut..Et à moins de stocker ces associations dans uyn fichier de config, et donc, de pouvoir la modifier sans recompiler, le reflexivité n'a pas vraiment d'intérêt : entre mettre des nms de méthode en dur (parce que TOUTES les méthodes de son objet ne sont peut être pas à associer à un index), et créer une méthode qui récupère le bon attribut à partir de l'index, y'a pas de différence fondamentale de quantité de code à pondre..
 
Perso, je suis partisan de la reflexivité, uniquement dans des cas où on ne connaît pas une classe à instancier, ou une méthode à appeller, et que cette info est susceptible de changer en fonction de l'utilisation...Par exemple, j'ai fait un serveur de chat, qui peut utiliser différents protocoles...Ben, le nom de la classe qui gère le protocole à utiliser par le serveur (c'est une class qui implémente l'interface Protocol, comme ça, je me fait pas chier) , est mise en configuration, et au démarrage, le serveur fait un p'tit :  
 
Protocol protocol = Class.forName(ServerConf.getProperty("Protocol" )).newInstance();
 
et le tour est joué : je modifie la conf, je redémarre mon serveur, et hop, il a changé de protocole...En dehors de ce genre de cas, franchement, je vois pas bien l'interet de la reflexivité, surtout vu la lenteur du machin! :D

n°139830
benou
Posté le 16-05-2002 à 14:18:55  profilanswer
 

bof : ce qu'il peux faire par exemple c'est rpednre une convenssion. Par exemple : tous les attributs qu'il souhaite afficher auront une méthode display.
ex pour l'attribut 'machin' :
 
public String displayMachin();
 
ca peut être sympa ...


---------------
ma vie, mon oeuvre - HomePlayer

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

  [JAVA] peut on stocker des méthodes dans un tableau ou vector

 

Sujets relatifs
[Java] envoi de fichiers sur 1 ftp serverPorts de communications et JAVA...
[Java] image de fondjava... incertitude sur l'unicité des objets
Java Servlets : pourquoi ca marche poa ??[JAVA] Interface Graphique et fichier HTML local
[Java] Bouttonjava : question sur "synchronized"
[Java Unix] non-static method cannot be referenced from a static ...[VB] Urgent ... Dessiner un tableau sous Word à l'aide de VB6
Plus de sujets relatifs à : [JAVA] peut on stocker des méthodes dans un tableau ou vector


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