.代码中尽量少出现"123".equals(str)这样的危险字符,而要public static final StringSTR = "123"; STR.equals(str)去代替.
求解释
求解释
解决方案 »
- java消除闪烁
- 利用socket向网络打印机发送文件去打印
- -------------------大家在开发系统的时候,都是开发到什么阶段开始在数据库建立VIEW---------------------
- 关于两个数组equals比较的问题?
- toArray()功能的实现
- 请问怎么使程序进入别的文件夹下运行呢?
- 如何遍历类的所有成员变量?
- 遍历一个对象的属性
- [100分]日期从2004-01-01到2005-01-18(今天),如何作个循环把这之间的每个日期都显示出来?急
- runtime.exec這個方法除了可以執行.exe外,還可以執行哪些程序??.bat的可以嗎
- java.util.Comparator和java.lang.Comparable这两个接口有什么不同?
- eclipse 输入下面内容怎么 len = -1
public static final String STR = "123"; STR.equals(str)这样只是方便以后如果123换成了456不用逐个去找123,直接修改public static final String STR = "456"就行,这样提高效率。
如果系统代码几K,几十K,甚至成千上百K,那么这样写肯定是危险的俄
如果用static final你只需要修改1个地方
如果很多地方都用"123".equels("XX")就需要分别修改。这样做的结果就是很容易漏改,或改错
"123".equals(str)
比
str.equals("123")
安全多了……危险谈不上
可读性,维护性欠佳而已
给你具个例子,通讯项目代码里经常要用"WCDMA",代码里可能成百上千处需要,
如果都直接写"WCDMA",
1)某处不小心写错了,编译器不会提醒你的;而定义了一个常量,各处使用,肯定不会错
2)某天为了规范,要改为"UMTS",要不一个个改,要不全部替换,都是又费神又有危险的操作;而定义了一个常量,只需修改这一处即可。PS:ls sunyiz兄说的很好,字符串与常量比较时,str.equals("123")前面一定要先判断str是否为null:(null != str)&&(str.equals("123"),而为null的判断经常会忘掉的;"123".equals(str)
就没问题了,即使str为null也正常判断为false。