This question is strongly related to Change private static final field using Java reflection. There, it was asked, how to change a private static final variable.
However, the answers on that question do not work in Java 12+ as you cannot access private variables of java.lang.reflect.Field using Reflection.
When you try to do it despite that, you will end up with a stack trace like:
Exception java.lang.NoSuchFieldException: modifiers
at Class.getDeclaredField (Class.java:2412)
at <your call of Field.class.getDeclaredField("modifiers").setAccessible(true)>
Is there any way to change such a constant in those versions?
I could imagine being possible utilizing JNI/JNA.
static finalfields as constants, so there is no guarantee that the updated value will be used in the program, instead of an old value. Better to find another solution to your problem.javac. I'm talking about the JIT compiler treating any value in astatic finalfield as a constant.