晚上因为需求,需要更改一个开源包的源码实现一个不同的功能。正常只要修改一个常量就可以,如下:
其有很多类有引用。没注意,直接下载源码更改这个类。最后覆盖相应的class文件。最后怎么都没成功。
想起java里面一个最简单的概念,static final 在编译的时候就已经确定了,已经编译到各个引用类中了,所以,更新需要同步覆盖啊。坑爹给忘了。。。。
本文分享了一次在修改开源包源码时因忽视staticfinal特性而失败的经历,提醒开发者在进行类似操作时需要考虑到编译时的特性及可能引发的问题。
晚上因为需求,需要更改一个开源包的源码实现一个不同的功能。正常只要修改一个常量就可以,如下:
其有很多类有引用。没注意,直接下载源码更改这个类。最后覆盖相应的class文件。最后怎么都没成功。
想起java里面一个最简单的概念,static final 在编译的时候就已经确定了,已经编译到各个引用类中了,所以,更新需要同步覆盖啊。坑爹给忘了。。。。
3584

被折叠的 条评论
为什么被折叠?