Этот вопрос тесно связан с Изменить личное состояние c окончательное поле, используя Java отражение . Там спросили, как изменить переменную private static final
.
Однако ответы на этот вопрос не работают в Java 12+, поскольку вы не можете получить доступ к закрытым переменным java.lang.reflect.Field
используя Reflection.
Когда вы попытаетесь это сделать, несмотря на это, вы получите трассировку стека, например:
Exception java.lang.NoSuchFieldException: modifiers
at Class.getDeclaredField (Class.java:2412)
at <your call of Field.class.getDeclaredField("modifiers").setAccessible(true)>
Есть ли способ изменить такую константу в этих версиях?
Я мог бы представить себе возможность использования JNI / JNA.