@hax
junior developer

Как изменить значение внешней переменной, которая подаётся на вход в метод?

Я знаю, что в Java для изменения внешней переменной нужно передать на вход значение параметра по ссылке. Хорошо, с объектами это вроде работает (хотя и не всегда). Но как изменить значение внешней переменной, если она имеет примитивный тип? Я пробовал использовать оболочку Integer - безрезультатно.
public class Application
{
    public static void main(String args[]) {
        Integer x = new Integer(5);
        System.out.println(x);
        change(x);
        System.out.println(x);
    }

    public static void change(Integer x) {
        x++;
    }
}


Выводит:
5
5
Как сделать так, чтобы во втором случае он выводил 6, а не 5?
  • Вопрос задан
  • 2767 просмотров
Пригласить эксперта
Ответы на вопрос 1
EugeneP2
@EugeneP2
Java Dev
В джаве, примитивные типы (int, long, char...) и объекты иммьютбл классов (Integer, Long, String...) вам так поменять не выйдет.

работать будет вот так

public static void main(String args[]) {
        Integer x = new Integer(5);
        System.out.println(x);
        x = change(x);
        System.out.println(x);
    }


public static void change(Integer x) {
        x ++;
        return x;
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы