Оператор ++
должен обновить значение своего аргумента, поэтому аргумент должен иметь фиксированную позицию в памяти для обновления.По этой причине аргумент должен быть переменной *.В этом случае аргумент - Integer.parseInt(suffix)
, не имеет фиксированного адреса памяти, который нужно вообще обновлять.
Интуитивно, Integer.parseInt(suffix)++
примерно эквивалентен Integer.parseInt(suffix) = Integer.parseInt(suffix) + 1
.Но Integer.parseInt(suffix)
- это просто целочисленное значение, не связанное с фиксированной позицией в памяти, поэтому приведенный выше код - это почти то же самое, скажем, 32 = 32 + 1
.Поскольку вы не можете присвоить новое значение 32
(ни Integer.parseInt(suffix)
), то нет смысла поддерживать оператор ++
.
Хорошая новость заключается в том, что это вообще не вызывает никаких проблем!Вместо Integer.parseInt(suffix)++
напишите Integer.parseInt(suffix)+1
.
* Или, как его обычно называют, l-значение или адресное значение .