博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态常量(static final)在class文件里是如何的呢?
阅读量:1545 次
发布时间:2019-04-21

本文共 1044 字,大约阅读时间需要 3 分钟。

近期写项目遇到一个问题,来回折腾了几次,最终探究清楚了。不废话。上样例。

背景:由于项目小,没有使用配置文件,全部静态常量都放在Config.java里面了

public class Config {    public static final String URL="http://www.xxxx.com/";    public static final int PAGE_NUM=10;}

看起来也不错啊,没什么大问题。都这么用的啊。

好吧,放到server上执行一下,正常啊。

接下来,问题来了。

URL改,PAGE_NUM也改。

public class Config {    public static final String URL="http://www.yyyy.com/";    public static final int PAGE_NUM=200;}

好了,生成下class文件,放到server上。喝杯茶。。。

刷新下,没变。再等等。server有个转换时间。。。

30s。

。。没变

1min。。。没变

重新启动server。

。(应该好了)

怎么还是没变???~~~!!!@@@###&&&+++***(究竟怎么回事。server坏了。重装?)

事实上什么都没坏。你不信?往下看。

找个小工具。把class文件反编译一下,找找引用常量的地方。你就瞬间明确了。

不是你想象的

Config.URLConfig.PAGE_NUM

 而是 

"http://www.xxxx.com/"10

 明确了吧,常量在class文件里,直接替换为值了。 

那还是想用Config.java,又不想改非常多地方。怎么办?

两个方法:

public class Config {    public static final String URL=new String("http://www.xxxx.com/");//好用    public static final int PAGE_NUM=new Integer(10);//不好用}
public class Config {    public static String getURL(){	return "http://www.yyyy.com";    }     public static int getPageNum(){	return 200;    } }
好了,其余的,等待大家去发现。

转载地址:http://xmdcy.baihongyu.com/

你可能感兴趣的文章
传感器的基本参数笔记
查看>>
vscode注释乱码的最简单解决方案
查看>>
MATLAB - Modbus TCP客户端的使用
查看>>
Power PMAC运动控制器 —— 学习笔记7
查看>>
Simulink框图转C代码笔记
查看>>
Word修改默认英文字体为Times New Roman
查看>>
Word页面底部有空白却自动换行的解决方案
查看>>
振动抑制浏览笔记
查看>>
MATLAB - 双y坐标绘图
查看>>
Matlab中legend的位置
查看>>
Eigen3矩阵与数组的互相转换
查看>>
动力学方程MCG矩阵的计算
查看>>
windows下Makefile无法删除中间文件的解决方案
查看>>
Simulink生成ROS功能包的步骤总结
查看>>
硬件在环(HIL)仿真方案
查看>>
基于模型设计(MBD)的机器人开发流程
查看>>
机器人非实时性示教系统的框架
查看>>
协作机械臂伺服驱动关键技术公开课笔记
查看>>
从伺服系统来看如何提升机器人的轨迹精度 公开课笔记
查看>>
关于Adams安装过程中问题的解决记录
查看>>