我今天想知道为什么 Java 不能测试除布尔值之外的任何其他类型。
在 C、C++ 和许多其他语言(实际上是大多数编程语言)中,以下是可能且有效的:
int a = 0;
if (a) // evaluates to false
; // do something nice
a = 6;
if (a) // evaluates to true
; // do something more
这也适用于对象、数组的几乎所有地方;任何可以0x00000000
在内存中具有价值的东西。
问题:为什么这在 Java 中是不可能的(你必须继续测试== 0
or == null
)?