我看到很多第三方开源代码中都有下面类似的代码:
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 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘