IntelliJ IDEA (и Java API отладчика) не поддерживает . Комментарий ответственного разработчика:
В Java JDI-коде (com.sun.tools.jdi.ObjectReferenceImpl#setValue
) есть проверка, не позволяющая изменять значение последнего поля, добавлено длинное go.
ObjectReferenceImpl.java # L236 :
// Make sure the field is valid
((ReferenceTypeImpl)referenceType()).validateFieldSet(field);
ReferenceTypeImpl.java # L614 :
void validateFieldSet(Field field) {
validateFieldAccess(field);
if (field.isFinal()) {
throw new IllegalArgumentException("Cannot set value of final field");
}
}
Причина, по которой это не разрешено, заключается в том, что изменение полей final может привести к несогласованности в поведении: некоторые значения могут быть уже «встроены» компилятором и не будут изменены.