Bonsoir,
J'avais cru comprendre que les objets étaient passés par référence en Java, or avec le code suivant, on s'attend bien à ce que l'objet str soit modifié dans le main :
Mais le résultat est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public static void main(String[] args) { String str = new String("ma_string"); System.out.println("str is: " + str); chgString(str); System.out.println("str modified is: " + str); } public static void chgString(String string) { System.out.println("str to modify in chgString() method is: " + string); string = new String("string_modifiee"); System.out.println("str modified in chgString() method is: " + string); }
Quelqu'un pourrait-il m'expliquer ce qu'il se passe ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 java -jar test.jar str is: ma_string str to modify in chgString() method is: ma_string str modified in chgString() method is: string_modifiee str modified is: ma_string
Merci bien.
Partager