java发射修改final变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java发射修改final变量相关的知识,希望对你有一定的参考价值。

 

private void updateFinalModifiers(Field field) throws NoSuchFieldException, IllegalAccessException {
    field.setAccessible(true);
    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);
    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
}

再调用 filed.set() 方法,就ok啦。

 

以上是关于java发射修改final变量的主要内容,如果未能解决你的问题,请参考以下文章

Java 中的“final”关键字是如何工作的? (我仍然可以修改对象。)

Java反射机制可以动态修改实例中final修饰的成员变量吗

Java基础之final关键字

Java final关键字

在Java中是否只有加了final才是常量?

java中 final 变量怎么用