shuimiao 发表于 2021-4-8 12:58:34

常量值为什么可以被修改呢?

理论上常量值就是固定的。但是当常量作为方法参数被修改后,再输出常量就是真的改了,就跟普通变量一样。


创世魂 发表于 2021-4-8 15:27:33

这种操作是第一次见。。。。没深入底层研究过。。但是猜测,注意是猜测:经过方法操作后,此时你操作的已经不是原本的那个常量了。。。。。

太过深奥。不太理解,超出知识盲区了。

shuimiao 发表于 2021-4-8 15:59:16

创世魂 发表于 2021-4-8 15:27
这种操作是第一次见。。。。没深入底层研究过。。但是猜测,注意是猜测:经过方法操作后,此时你操作的已经 ...

我估计是常量没有被设置只读属性。其实也可以在常量被传递给方法后,内部使用一个不可见的临时变量接管该常量值,再传递给方法,这样常量就不会被修改。

Fang0x378 发表于 2021-4-8 20:08:53

看不懂。。

shuimiao 发表于 2021-4-8 21:30:56

Fang0x378 发表于 2021-4-8 20:08
看不懂。。

很简单的代码啊,就是常量值被传递给方法参数,方法里对该参数进行了赋值,而这样却会影响到常量值
页: [1]
查看完整版本: 常量值为什么可以被修改呢?