Bonjour,
je déterre ce topic car je n'ai pas tout pigé et j'ai un pb similaire.
J'ai bien compris ceci :
Le passage des paramètres en java se fait bien par référence SAUF pour les types primaires (ceux qui ne sont pas des objets: boolean char byte short int long float double )
Maintenant, ok ce n'est pas un passage par référence mais par "copie de référence", au final cela change quoi pour éditer notre paramètre ?
Je m'explique.
Imaginons une méthode qui instancie une nouvelle Map :
Map<Integer,String> toto = new HashMap<Integer,String>();
On passe notre map dans une méthode qui renvoie déjà une valeur de retour.
1 2 3 4
|
...
boolean isExecuted = maMethode(monParam1, toto);
... |
et imaginons que notre méthode "renseigne" la map.
1 2 3 4 5 6
|
private boolean isExecuted(String monParam1, Map<Integer,String> bob){
...
bob.put(key,value);
...
return true; |
Comment se fait il que notre map ne semble pas être renseignée dans méthode principale ?
Si je pige bien on travaille sur la copie de la référence, donc finalement l'insertion d'élément devrait se faire sur le même objet.....
plz Help ! thanks
[edit]
- Le contenu d'une variable de type objet (une référence mémoire) ne peut pas être modifié par une méthode pour qu'elle (la variable) fasse référence à un autre objet mais le contenu de l'emplacement mémoire référencé peut être modifié.
Ne sommes nous pas dans le cas de la modification du contenu d'un emplacement mémoire référencé ?
Partager