Но предупреждение и отсутствие предупреждения правильно :
- Часть
j =
в j = ++j
не имеет никакого эффекта;j
уже содержит обновленное значение.Поэтому предупреждение имеет смысл. - Но часть
i =
в i = i++
оказывает влияние: после увеличения i
до 1 ему присваивается значение 0
-результат выражения правой руки.Таким образом, предупреждение «не имеет никакого эффекта» не только не требуется, оно будет неправильно.
Возможно, у вас есть аргумент для другого предупреждения для случая i
, но в целом,компилятор не выполняет огромное количество операций по проверке (проверяет наличие вероятных логических ошибок, но не является ошибками language ).
Следует отметить, что компилятор OpenJDK не 'не выдавать никаких предупреждений для данного кода.Eclipse имеет свой собственный компилятор, и этот компилятор делает больше предупреждений, так что ... вы можете запросить у них запрос на добавление предупреждения для случая i = i++
, что-то вроде «Побочные эффекты в выражении с правой стороны сводятся на нет»по заданию "или что-то подобное.