【发布时间】:2012-08-03 15:16:41
【问题描述】:
可能重复:
Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?
在this NotePadProvider sample code,我注意到作者选择了表单:
if (values.containsKey(NoteColumns.CREATED_DATE) == false) {
values.put(NoteColumns.CREATED_DATE, now);
}
结束:
if (!values.containsKey(NoteColumns.CREATED_DATE)) {
values.put(NoteColumns.CREATED_DATE, now);
}
第一种形式比逻辑更合理的形式有什么优势吗?
【问题讨论】:
-
更具可读性。
-
@Lukas Knuth 真的吗?我会认为相反...
-
在第一个示例中,您乍一看预期的结果应该是错误的。在后一个示例中,您只能猜测预期的内容。也很容易漏掉感叹号。
-
if (b==false)更冗长且难以阅读。如果你想让它更冗长,你可以使用if (b == false == true == true)(借用自stackoverflow.com/questions/2661110) -
如何
if(b != true)完成事情。来自 C-Background,为了清晰起见,我更喜欢详细版本,但是(假设编译器不会优化它)详细方法会创建更多处理:Read valaue oneread value twocompareproceed according to output而不是@987654333 @proceed according to value
标签: java boolean boolean-logic boolean-expression