begin process at 2010 02 10 00:52:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

JavaBeans

 > 

bean et méthode static


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

bean et méthode static

mercredi 25 février 2004 à 09:07:18 | bean et méthode static

jmg02001

Bonjour, sauriez vous pourquoi d'un bean, si je veut appeler une méthode d'un autre bean du mème pakage, sans créer à chaque fois un objet avec
General grl = new General();
grl.SousDateHeure()

si je fais à la place:

General.SousDateHeure()

dans le bean général , je suis aubligé de déclarer la méthode en static:

public static String SousDateHeure

sauriez vous également les conséquence?
mercredi 25 février 2004 à 11:31:07 | Re : bean et méthode static

kirua12


Salut,

lorsque tu fais General.SousDateHeure() (avec un le premier 's' en minuscule c'est mieux) tu appelles une méthode de classe et non d'instance. Pour signifier que c'est une méthode de classe tu dois mettre le mot clé 'static'.
Suivant ce que tu fais dans cete méthode les conséquences vont de rien à totalement désatreux. Une méthode static manipule les champs static de la classe. Ces champs sont donc 'partagés' par tous ceux qui appelle cette méthode ce qui implique que tu n'as pas forcément le même résultat pour 2 appels consécutifs.

Si tu ne veux pas créer un objet à chaque fois mais ne pas mettre ta méthode static, tu peux utiliser le pattern singleton. Il a d'ailleurs été prévu pour ça.
mercredi 25 février 2004 à 15:18:07 | Re : bean et méthode static

jmg02001

merci mais je ne vois pas tres bien ce qu'est les champs static .
c'est les variable globale à l'objet déclarées en static?

sinon plusieur utilisateurs peuvent se servir de la méthode statique en mème temps, sans changer la valeur des variables déclarées dans cette méthode pour les autres?
mercredi 25 février 2004 à 15:47:13 | Re : bean et méthode static

kirua12


en fait on peut dire que les variables static sont des variables globales mais à la classe seulement. Ce qui implique que si une variable est modifiée par le traitement d'une méthode, lorqu'un autre appel sera fait les valeurs utilisées seront celles de l'appel précédent.

Donc si plusieurs utilisateurs accèdent à cette méthode les valeurs seront modifiées.

Si tu dois remettre à zéro tes variables ce ne sont pas des variables de la classe mais doivent plutôt être passées en paramètre.
mercredi 25 février 2004 à 15:57:27 | Re : bean et méthode static

jmg02001

ok merci mais ma question tourne sur les variables déclarées uniquement à l'intérieur de la méthode utilisée ces variables étans uniquement fonction des paramètres envoyés à cette méthode, il n'y a donc pas de problèmes d'acces concurentiel?

en d'autre termes le micropresesseur attentant il la fin de la méthode avant de l'utiliser pour un autre utilisateur pour cette meme instance?
mercredi 25 février 2004 à 16:11:17 | Re : bean et méthode static

kirua12


pour les variables déclarées juste dans la méthode, elles seront initialisées à chaque appel. De ce côté là pas de pb.

Par contre si tu as plusieurs threads qui accèdent à ta méthode, il faut protéger les accès aux données. Ceci se fait en utilisant le mot clé 'synchronized'.
public synchronized void maMethode(){
...
}

Ta méthode ne sera exécutée que par un seul thread à la fois.
mercredi 25 février 2004 à 16:26:27 | Re : bean et méthode static

jmg02001

merci mais je ne sais pas si plusieur thread accede à ma méthode à la fois , tout ce que je sais c'est que ayant déclaré ma méthode en statique elle ne cré pas d'autre instance que celle crée par la session (scope session sur le bean de cette class).

mais si un autre utilisateur accede à cette méthode il aura un autre objet de cette class (étant bean de scope session) puisqu'il sera sur une autre cession?

il ùe semble donc que je ne soit pas multithread! esce exacte?
mercredi 25 février 2004 à 16:36:43 | Re : bean et méthode static

kirua12


j'ai du mal à comprendre le contexte. Ton bean est sur un serveur d'applications ?
Qui qu'il en soit il n'y a pas d'instance associée à ta méthode static.
Si tu as une nouvelle instance de ton bean pour chaque utilisateur pourquoi veux tu une méthode static ?
Peux tu me donner un peu plus de détails ?
mercredi 25 février 2004 à 16:47:55 | Re : bean et méthode static

jmg02001

oui mon bean est sur un serveur d'application.

je croyais que ma méthode statique était praticable que par le biais de l'instance de l'objet où il y a cette méthode.

je crois avoir une nouvelle instance de mon bean pour chaque utilisateur puisque mon bean à un scope session.
et je veut une méthode statique car si je fait
General grl = new General();
grl.SousDateHeure()
j'ai une création d'objet à chaques fois que je veut me servir de la méthode SousDateHeure à partir d'un bean du meme pakage


donc j'ai fait à la place:

General.SousDateHeure()

mais dans le bean général , je suis aubligé de déclarer la méthode en static!

ece grave? cette méthode n'utilisant que ses parametres?
mercredi 25 février 2004 à 17:14:45 | Re : bean et méthode static

kirua12


oulà j'ai dû raté une marche !!
'General' est ton bean qui est en session ?
Si oui tu peux le récupérer et appeler ta méthode donc pas besoin de méthode static.

Sinon je voie rien qui empêche l'utilisation d'une méthode static. Par contre tu es dans un environnement multithread donc je pense qu'il faut déclarer ta méthode synchronized.

1 2 3

Cette discussion est classée dans : static, méthode, general, bean, sousdateheure


Répondre à ce message

Sujets en rapport avec ce message

Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Méthode paint [ par deltiti ] Je réalise actuellement un prog de simulation de cours de change en java pour mon mémoire. Mais je rencontre un petit problème...En effet j'utilise to problème de référence static / non-static lors de l'appel d'une méthode [ par FunkyJulius ] Hello tout le monde, Ben voilà je débute et bien sur je croule sous les problèmes et erreurs diverses... Et là je sollicite votre aide. ça doit être variable static+JTabbedPane [ par monpseudonom ] Salut.J'utilise la méthode addTab de la classe JTabbedPane de java pour ajouter des onglet.J'ai la classe suivante:public class classPane{public stati JDBC Pilote ET Connexion (drôle de logique ?) [ par stevenleferran ] BonjourJe vous remercie de me dire si le code suivant (qui fonctionne) est correct ou pas? Et de m'indiquer les éventuels problèmes de logique. Ce que Packages, méthodes statiques [ par dildil ] Bonsoir.Voila j'ai un petit problème dans le projet que je mène actuellement.Pour faire simple, j'ai des packages (src/gui et src/musique entre autres Methode static ??? erreur [ par didygwatinik ] Bonjour, Je suis sur un projet de gestion de prêts en JAVA, je débute totalement!! Je voudrai appeler une méthode de ma classe TabLivre mais cela ne m


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales