Примечание: по моему скромному мнению, написание n ++ для объекта Integer крайне вводит в заблуждение. Это основывается на функции Java, называемой «autoboxing», где она автоматически и без предупреждения преобразует примитивы в соответствующие им объекты бокса - например, int в Integer или boolean в Boolean. Честно говоря, я думаю, что это плохая особенность. Да, иногда это делает вашу жизнь проще, автоматически делая удобное преобразование для вас, но оно также может выполнять преобразования, которые вы не планировали и не понимаете, происходят с непреднамеренными побочными эффектами.
В любом случае, есть два способа выполнить то, что вы, очевидно, пытаетесь сделать:
One: функция приращения возвращает новое целое число с обновленным значением. Нравится:
public Integer increment(Integer n)
{
Integer nPlus=Integer.valueOf(n.intValue()+1);
}
затем назовите его с:
Integer n=Integer.valueOf(0);
n=increment(n); // now n==1
n=increment(n); // now n==2
1011 * Etc. *
Два: Создайте свой собственный класс, который напоминает Integer, но который является изменяемым. Как:
class MutableInteger
{
int value;
public MutableInteger(int n)
{
value=n;
}
public void increment()
{
++value;
}
... whatever other functions you need ...
}
Конечно, большая выгода заключается в том, что вам в значительной степени приходится заново изобретать класс Integer.