关于对象判空,我在不同的地方看到不同的写法,在jdk中和spring中写法相反
例如:
if(null==object) 很多人都提倡这么写,但是在HashMap源码中我看到了if(object==null) 这种写法与提倡的相反。
写个程序验证一下吧
结论:
1 首先不管null不管是写在前或者后,都不会抛控制针,与网络上流传的写在后面可能有空指针的说明不一致。
2 网上还流传的一种说法是如果== 写成= ,如果是null在前会直接编译报错,而null写在后面则不会,实验后发现都会编译错误,只是错误不一样而已。
3 只有一种说法最可靠,是从C语言继承下来的编写习惯,在C语言中不同的写法会有不同的结果。如果程序写成if(a=null) 等值判断变成赋值操作并不会报错。为了规避这个错误,把null提到前面来。
#include<stdio.h>
int main()
{
int a;
if(a=10)
prinlf("a==10\n");
else
printlf("a!=10");
printtf("\n");
int *b = 5;
printf("a is %d\n",a);
printf("b is %d\n",b);
}
输出结果:
a==10
a is 10
b is 5
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。