Как правильно передать класс 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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