我一直在作为Java开发人员的第一份工作中学习,以避免使用"!=",而是使用空if子句然后将逻辑放在else中:
//Bad:
if (x != null) {
// logic
}
//Good:
if (x == null){
} else {
// logic
}
Run Code Online (Sandbox Code Playgroud)
我们的首席开发人员的推理是避免不必要的位切换,特别是对于像空检查这样的简单逻辑.
我一直在寻找说明这一点的消息来源,但我似乎找不到任何消息.空if子句练习真的是"最佳实践"还是只是偏好?
Sot*_*lis 10
IMO,这是微优化的失败尝试.
编译代码
public static void main(String... args) {
Object x = null;
//Bad:
if (x != null) {
// logic
}
//Good:
if (x == null){
} else {
// logic
}
}
Run Code Online (Sandbox Code Playgroud)
并检查 javap
public static void main(java.lang.String...)
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=1, locals=2, args_size=1
0: aconst_null
1: astore_1
2: aload_1
3: ifnull 6
6: aload_1
7: ifnonnull 10
10: return
LineNumberTable:
line 9: 0
line 11: 2
line 16: 6
line 20: 10
}
Run Code Online (Sandbox Code Playgroud)
两者都跳到另一个分支.表现没有什么不同.IMO,你的代码的可读性受到了影响.
如果x为null,则为blah,否则为逻辑.
| 归档时间: |
|
| 查看次数: |
878 次 |
| 最近记录: |