Question bête concernant le langage Java...

Résolu
Madvin Messages postés 123 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2012 - 3 mai 2008 à 21:55
Madvin Messages postés 123 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2012 - 4 mai 2008 à 17:39
Bonjour,

Je suis actuellement en train d'implémenter une application à partir d'un document de spécifications qui n'est pas propre à un langage de programmation en particulier... Et je souhaiterais juste avoir une confirmation....

Est-il possible en Java de modifier la valeur d'une variable en la passant en paramètre d'une fonction qui effectue la modification ?

Ex:

void foo(<Type> param) {
param = ....;
}

void main() {
<Type> obj;

foo(obj);

// obj est modifié...
}

Je suis pratiquement sûr que non mais j'aimerais juste avoir confirmation qu'il n'existe pas de moyen pour modifier une variable comme cela... Si c'est effectivement le cas, il faudra que je diffère légèrement des specs...

Merci.

PS : Et pas la peine de me lister les solutions pour pallier à ce problème, je les connais...

3 réponses

Utilisateur anonyme
4 mai 2008 à 09:37
Bonjour

Tu ne peux pas modifier l'adresse de ta variable passée en paramètre dans une méthode (si tu le fais, ça ne la changera que localement) mais tu peux modifier les valeurs des attributs de ta variable en utilisant des accesseurs en écriture. Le lien de Chabour montre le cas d'un paramètre de type primitif que tu enveloppes dans un objet, c'est peut-être pas tout à fait ce que tu voulais.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
3
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 18
4 mai 2008 à 08:13
Salut,

un lien sur le sujet..
0
Madvin Messages postés 123 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2012 3
4 mai 2008 à 17:39
C'est bien ce qu'il me semblait : on ne peut pas modifier l'adresse d'une variable en la passant en paramètre d'une fonction qui fait ce changement.

Bon ben merci pour vos réponses... Je ne vais pas pouvoir respecter les specs à la lettre ! Tant piche !!

++
0
Rejoignez-nous