+ -
当前位置:首页 → 问答吧 → 为什么代码中尽量少出现"123".equals(str)这样的危险字符???

为什么代码中尽量少出现"123".equals(str)这样的危险字符???

时间:2011-09-17

来源:互联网

.代码中尽量少出现"123".equals(str)这样的危险字符,而要public static final StringSTR = "123"; STR.equals(str)去代替.
求解释

作者: zhuJustice   发布时间: 2011-09-17

把 "123".equals(str) 称为危险字符有点言之过重了吧。
public static final String STR = "123"; STR.equals(str)这样只是方便以后如果123换成了456不用逐个去找123,直接修改public static final String STR = "456"就行,这样提高效率。

作者: liuyuhua0066   发布时间: 2011-09-17

修改起来方便 而已 
谈不上危险。。。

作者: amdgaming   发布时间: 2011-09-17

引用 1 楼 liuyuhua0066 的回复:

把 "123".equals(str) 称为危险字符有点言之过重了吧。
public static final String STR = "123"; STR.equals(str)这样只是方便以后如果123换成了456不用逐个去找123,直接修改public static final String STR = "456"就行,这样提高效率。


但是在精华帖里有很多人都称它为危险呢

作者: zhuJustice   发布时间: 2011-09-17

如果你写的只是个小程序,这样当然没什么影响。
如果系统代码几K,几十K,甚至成千上百K,那么这样写肯定是危险的俄

作者: gentleboy2009   发布时间: 2011-09-17

引用 4 楼 gentleboy2009 的回复:

如果你写的只是个小程序,这样当然没什么影响。
如果系统代码几K,几十K,甚至成千上百K,那么这样写肯定是危险的俄

能不能再讲得具体点,为什么是危险的

作者: zhuJustice   发布时间: 2011-09-17

没什么的,可以用

作者: wanghaofei3516   发布时间: 2011-09-17

比如 你有恨多地方都需要喝123比较 
如果用static final你只需要修改1个地方
如果很多地方都用"123".equels("XX")就需要分别修改。这样做的结果就是很容易漏改,或改错

作者: Beijing_L   发布时间: 2011-09-17

统一在一个地方对定义,供多处使用,如果你确认你会永久一看到这代码就可以明白"123".equals(str)中的数字什么是什么意思,同时你也能确保"123"以后永久不会改变,这样就无危险可严。。。.说其危险只是夸张了下,是要引起程序员的注意

作者: zyz1985   发布时间: 2011-09-17

引用 8 楼 zyz1985 的回复:

统一在一个地方对定义,供多处使用,如果你确认你会永久一看到这代码就可以明白"123".equals(str)中的数字什么是什么意思,同时你也能确保"123"以后永久不会改变,这样就无危险可严。。。.说其危险只是夸张了下,是要引起程序员的注意

哦~~,明白

作者: zhuJustice   发布时间: 2011-09-17

谢谢各位的回复

作者: zhuJustice   发布时间: 2011-09-17

等你以后做大项目的时候就有体会了

作者: junjian1989   发布时间: 2011-09-17

这种称为“魔法常量”,也就是说莫名其妙地一个字面常量,让人不知道这是干嘛的,为什么要用这个。

作者: bao110908   发布时间: 2011-09-18

热门下载

更多