自从我开始使用Java以来,它一直非常恶心,因为它不支持从数字类型到布尔值的隐式转换,所以你不能做以下事情:
if (flags & 0x80) { ... }
Run Code Online (Sandbox Code Playgroud)
相反,你必须经历这种疯狂:
if ((flags & 0x80) != 0) { ... }
Run Code Online (Sandbox Code Playgroud)
null和对象也是一样的.我知道的其他类似C语言包括JavaScript允许它,所以我认为Java只是愚蠢的,但我刚刚发现C#是相同的(至少对于数字,不知道null /对象): http: //msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
微软故意用C++改变它,为什么呢?显然我错过了一些东西.为什么要改变(我认为是)世界上最自然的事情,让它更长久才能打字?地球上有什么问题呢?