我试图检查null的参数,我在脑海中找到了一个问题: 有什么区别:
if ( (object) o == null ) ...
和
if ( ((object) o) == null ) ...
编辑:变量o可以是任何引用类型(没有重载==运算符)。
答案 0 :(得分:2)
if ((object) o) == null) ...
是个错误。也许你想写
if (((object) o) == null) ...
所以你将o
投射到Object
然后测试它是否等于null
除了在if (((object) o) == null) ...
中使用()
所有这些符号都可以完成相同的测试。
答案 1 :(得分:-2)
两者都是一样的。
在第一种情况下 - 在施法前进行比较。首先,它将与null进行比较然后转换为Object。
在第二种情况下 - 在比较之前进行铸造。首先,它会将o转换为Object,然后将其与null进行比较。