JAVA修改常量后服务器上未生效

项目原因,突然出现个问题。因为当初在代码里面定义了个常量类,里面定义了些不常变更的参数,但是突然有天,客户说需要调整一下参数。于是就调整了重新编译了个常量类增量补丁放到服务器上,结果未生效。清理各缓存文件都未生效。

原因就是: JAVA对常量编译时,是直接将值编译到对应引用的地方,定义为了局部变量。如果改动常量定义,那么所有使用该常量的类,都需要重新编译,才能正常运行。

如何发现: 我们将服务器上的包,拷贝到测试环境。我突发奇想,将定义的常量类删掉,然后重启tomcat,结果服务正常启动起来了,并没有报什么找不到类的问题。 那么就说明了引用该常量类里面的参数时,并没有使用该类,或者说就是用错类了。

于是我去反编译使用常量类的其他类,找到一个类,里面并没有import所谓的常量类,也没有对应的常量参数。等找到对应的代码时,一个局部变量直接将常量定义的值写在那。

其实,这个问题,如果在了解JAVA编译的同学很快就能够判断出来了。加油吧少年!

转载于:https://my.oschina.net/linx/blog/1594282

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值