java - if (!statement) 和 if (statement != true) 之间的区别?

标签 java android

我遇到过一些情况,其中第一个似乎改变了 boolean 值,而第二个却没有!两者之间有真正的区别吗:

boolean x = true;

if (x != true) {}
if (!x) {}

最佳答案

不,没有。

尽管有些人认为第二个习语更优雅(不那么麻烦和冗长)。

有一个问题!

!= 运算符用于对象引用相等,因此在使用包装器 Boolean 而不是基元的边缘情况场景中...

Boolean b0 = new Boolean("true"); // value true
Boolean b1 = new Boolean("true"); // value true as well
System.out.println(!b0); // prints false
System.out.println(!b1); // prints false too
System.out.println(b0 != b1); // references not equal, prints true!

输出

true

关于java - if (!statement) 和 if (statement != true) 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726929/

相关文章:

Android Intent 街景 View 不再有效

android - 如何在 HTML 中而不是在 View 中滚动?

android - 如何将 setMultiChoiceItems() 与使用效率数组适配器的自定义 AlertDialog 一起使用?

java - 将精确匹配排名为最高的最佳 lucene 设置是什么

java - 使用带有 Oracle 数据库上的绑定(bind)变量的PreparedStatement 来触发查询

java - String.intern() 的垃圾收集行为

java - Selenium 无法在找到的元素中发送键

java - 为什么我的进程变成了 T (Terminated)State ?

android - 如何安装 kivy 及其依赖项以在 linux ubuntu 12.04 上制作 Android 应用程序

android - 旧版 Android 操作系统不支持 getSize(),getWidth()/getHeight() 已弃用