Я заметил удивленный поведение:Почему я не могу увеличить возвращаемое значение?
Я могу написать так:
Integer integer = 0;
integer++;
Но я не могу написать так:
getInteger()++;
если
public static Integer getInteger(){
return 0;
}
Для меня два фрагмента выглядят одинаково.
Но второй сниппеты производит:
unexpected type
getInteger()++;
^
required: variable
found: value
Почему второй конструкции является запретить?
Часто в коде я вынужден писать уродливые конструкции, как это:
obj.set(obj.get()+1);
Это выглядит избыточно.
вы не можете выполнять константу ++, то есть 5 ++. В вашем методе вы возвращаетесь 0; – Rahul
Насколько отличается obj.get() + 1 от obj.get() ++? –
Что вы ожидаете от этого? Перевести на вызов 'setInteger (getInteger() + 1)'? Не забывайте, что язык Java * не знает ничего о геттерах и сеттерах ... –