Java lui-même est un appel de transmission de valeur et la valeur de l'adresse est transmise à l'objet. La réattribution de la valeur de l'adresse équivaut à un repointage et n'affectera pas la couche externe.
Et l’objet Integer a également ici des caractéristiques particulières. En fait, cela peut ressembler à
Copiez le code comme suit :
classe Entier{
valeur int finale ; //Une fois attribuée, elle ne peut pas être modifiée.
}
Cela apparaît : la valeur d'adresse transmise lors de l'appel ne peut pas modifier la couche externe + l'objet lui-même ne peut pas être modifié. Par conséquent, cette valeur ne peut pas être modifiée
Il existe de nombreuses solutions
1. Le style Java consiste à utiliser la valeur de retour pour une seule valeur. return i ; assigner i=foo(); utiliser des tableaux ou des objets pour plusieurs valeurs.
2. Réussissez votre propre cours d'encapsulation. classe MutableInteger{valeur int;}
3. Passez l'objet entier atomique AtomicInteger dédié
Copiez le code comme suit :
public static void main (paramètre String[]) {
AtomicInteger i=nouveau AtomicInteger(40);
i.intValue();
System.out.println(i);
}
changement de vide statique public (AtomicInteger i) {
je.set(55);
}
Vous pouvez également modifier la valeur après l'avoir passée,
Option recommandée 1, essayez d'éviter