Java en sí es una llamada de transferencia de valores y el valor de la dirección se pasa al objeto. Reasignar el valor de la dirección equivale a redireccionar y no afectará la capa exterior.
Y el objeto Integer aquí también tiene características especiales. De hecho, puede ser similar a
Copie el código de código de la siguiente manera:
clase Entero{
valor int final; // Una vez asignado, no se puede cambiar.
}
Esto aparece: el valor de la dirección pasado durante la llamada no puede cambiar la capa exterior + el objeto en sí no se puede cambiar. Como resultado, este valor no se puede cambiar.
Hay muchas soluciones
1. El estilo de Java consiste en utilizar el valor de retorno para un único valor. devolver i; asignar i=foo(); usar matrices u objetos para múltiples valores.
2. Pase su propia clase de encapsulación. clase MutableInteger{ int valor;}
3. Pase el objeto entero atómico AtomicInteger dedicado
Copie el código de código de la siguiente manera:
público estático vacío principal (parámetro String []) {
AtomicInteger i=nuevo AtomicInteger(40);
i.intValue();
System.out.println(i);
}
cambio de vacío estático público (AtomicInteger i) {
i.set(55);
}
También puedes cambiar el valor después de pasarlo,
Opción recomendada 1, intenta evitar