java 怎么更改final的值

Posted

tags:

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

这个用到了java的反射机制,可不可以修改分为两种情况:

    当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了。

2. 当final修饰的成员变量在定义的时候并没有初始化值的话,那么就还能通过java反射机制来动态修改它的值。

具体方法可以查看java的反射机制,这里说明一下为什么第一种方法不可以修改,第二种方法可以修改:

当成员变量在定义的时候就初始化了值时(如:name="zhangsan";),编译期间final类型的数据自动被优化了,即:所有用到该变量的地方都被替换成了常量。所以 get方法在编译后自动优化成了return "zhangsan"; 而不是 return this.name;

参考技术A 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。本回答被提问者和网友采纳

以上是关于java 怎么更改final的值的主要内容,如果未能解决你的问题,请参考以下文章

在java的Map集合中,怎样更改value的值?

c# 怎么更改DataTable 中某列的值?

在 Java Servlet 中,如何更改现有 cookie 的值?

Java - 方法更改 JTable 中变量的值(刷新不起作用)

如果我使用异步存储,当我更改屏幕时,我的值怎么会重置为 0?

更改DataTable某列的值。C#