Как правильно передать класс Integer по ссылке?JAVA

Программисты JAVA общаются здесь
Anonymous
Как правильно передать класс Integer по ссылке?

Сообщение Anonymous »

Я надеюсь, что кто-нибудь сможет разъяснить мне, что здесь происходит. Я немного покопался в классе целых чисел, но поскольку целое число переопределяет оператор +, я не мог понять, что происходит не так. Моя проблема связана с этой строкой:

Код: Выделить всё

Integer i = 0;
i = i + 1;  // ← I think that this is somehow creating a new object!
Вот мои рассуждения:
Я знаю, что Java передает по значению (или передает по значению ссылки), поэтому я думаю, что в следующем примере Целочисленный объект должен увеличиваться каждый раз.

Код: Выделить всё

public class PassByReference {

public static Integer inc(Integer i) {
i = i+1;    // I think that this must be **sneakally** creating a new integer...
System.out.println("Inc: "+i);
return i;
}

public static void main(String[] args) {
Integer integer = new Integer(0);
for (int i =0; i

Подробнее здесь: [url]https://stackoverflow.com/questions/3330864/how-can-i-pass-an-integer-class-correctly-by-reference[/url]

Вернуться в «JAVA»