Java сам по себе является вызовом передачи значения, и значение адреса передается объекту. Переназначение значения адреса эквивалентно переназначению и не повлияет на внешний уровень.
И объект Integer здесь также имеет особые характеристики. На самом деле это может быть похоже на
Скопируйте код кода следующим образом:
класс Целое число {
Final int value; // После присвоения его нельзя изменить.
}
Это проявляется: значение адреса, переданное при вызове, не может изменить внешний слой + сам объект не может быть изменен. В результате это значение не может быть изменено.
Есть много решений
1. Стиль Java заключается в использовании возвращаемого значения для одного значения. return i; назначить i=foo() снаружи; использовать массивы или объекты для нескольких значений.
2. Передайте свой собственный класс инкапсуляции. класс MutableInteger{целое значение;}
3. Передайте выделенный атомный целочисленный объект AtomicInteger.
Скопируйте код кода следующим образом:
public static void main(параметр String[]) {
AtomicInteger я = новый AtomicInteger (40);
я.intValue();
System.out.println(я);
}
публичное статическое изменение силы (AtomicInteger i) {
я.установить(55);
}
Вы также можете изменить значение после его передачи,
Рекомендуемый вариант 1, старайтесь избегать