我看到很多第三方开源代码中都有下面类似的代码:
1.public static boolean isNumeric(String str) {
2. if (str == null) {
3. return false;
4. }
5. int sz = str.length();
6. for (int i = 0; i < sz; i++) {
7. if (Character.isDigit(str.charAt(i)) == false) {
8. return false;
9. }
10. }
11. return true;
12. }
我想问的就是 if (Character.isDigit(str.charAt(i)) == false), 为什么很多代码判断 true 还是 false的时候都用 "== false" 的形式,而不写成 if (!Character.isDigit(str.charAt(i))) {...} 的形式,两者具体有什么区别?
为啥判断boolean值的时候用 value == false 的形式而不直接取反
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
9条回答 默认 最新
- beneo 2010-12-31 08:44关注
java代码是有compile变成class,然后在jvm里面运行的
[code="java"]
public class CompileDemo {public void demo() { if (isDigit() == false) { } } public void demo2() { if (!isDigit()) { } } public boolean isDigit() { return true; }
}
[/code]编译以后,用javap -l -s -v CompileDemo,可以看出
[code="java"]
public void demo();Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: invokevirtual #2; //Method isDigit:()Z
4: ifne 7
7: returnpublic void demo2();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: invokevirtual #2; //Method isDigit:()Z
4: ifne 7
7: return
[/code]这2个方法其实是一模一样的。
(Character.isDigit(str.charAt(i)) == false)与(!Character.isDigit(str.charAt(i)))就是代码可读性的问题了。。。我自己也觉得前者更易读一些
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看