静态常量被引用时,编译阶段即确定值_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 静态常量被引用时,编译阶段即确定值

静态常量被引用时,编译阶段即确定值

 2012/1/7 16:20:41  up2pu  程序员俱乐部  我要评论(0)
  • 摘要:最近在对一个产品出升级补丁时遇到一个问题,与静态常量有关。问题现象:产品包中有一个product.jar,出升级补丁时,只修改了该jar包中的一个类中的一个静态常量。publicclassAppConstant{publicstaticfinalStringAPP_NAME="MyProduct";}改为publicclassAppConstant{publicstaticfinalStringAPP_NAME="MyProduct2";}将新的AppConstant
  • 标签:编译
最近在对一个产品出升级补丁时遇到一个问题,与静态常量有关。

问题现象:
产品包中有一个product.jar,出升级补丁时,只修改了该jar包中的一个类中的一个静态常量。

public class AppConstant {
    public static final String APP_NAME = "MyProduct";
}

改为
public class AppConstant {
    public static final String APP_NAME = "MyProduct2";
}


将新的AppConstant.class添加到product.jar中后,发现没有实现预期的功能。
然后尝试重新生成完整的product.jar,添加到产品包中,新功能生效。

问题原因:
开始怀疑是编译环境jdk版本不一致导致的,于是尝试使用相同jdk编译,问题依旧。
后来怀疑是静态常量导致的问题,更新静态常量时,要同时更新引用该静态常量的类,并确保该类已经重新编译。因为静态常量被引用时,在编译期就已经确定了值,在运行期不会动态加载对应的值。


参考资料:
http://blog.csdn.net/ahhsxy/article/details/6097881
发表评论
用户名: 匿名