该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-11
hklongshao 写道 不能言说的伤 写道 这个的主要区别是,举个例子,例如,a是用来接收页面的参数的,。如果传过来的参数为null,那么如果是a=!null这种方式的话,,会报一个空指针异常,,儿null!=a则不会、
这都行。。。我觉得主要是怕写成a=null,变成赋值了,如果写成null=a,则会报错 同意。 记得是C++中 在判断 如:if ( a == 1 ) 时 一般写 if (1 == a ) 就是为了避免写成 if (a = 1) 这样恒为真了。 而如果用if (1 == a) 写成 if (1 = a) 则会报错。 因为这里的习惯,很多人在写if ( a != 1)时也会写 if (1 != a)... 同样可以避免相同的问题。 前面那个就乱扯,怎么可能会报错,我从来都用的 if (a != null && !a.equals("")) {...} 怎么就没错过, |
|
返回顶楼 | |
发表时间:2011-03-11
我的理解是这样
比较字符串的话就常量在前无需判断变量是否为空啦.可以少敲几下键盘. if("something".equalsIgnoreCase(str)){ } if(str!=null&&str.equalsIgnoreCase("something")){ } |
|
返回顶楼 | |
发表时间:2011-03-15
不能言说的伤 写道 这个的主要区别是,举个例子,例如,a是用来接收页面的参数的,。如果传过来的参数为null,那么如果是a=!null这种方式的话,,会报一个空指针异常,,儿null!=a则不会、
a!=null报空指针异常?它报的哪门子空指针啊? |
|
返回顶楼 | |
发表时间:2011-03-15
云和山的彼端 写道 我的理解是这样
比较字符串的话就常量在前无需判断变量是否为空啦.可以少敲几下键盘. if("something".equalsIgnoreCase(str)){ } if(str!=null&&str.equalsIgnoreCase("something")){ } 请问这位仁兄 玩真三? |
|
返回顶楼 | |
发表时间:2011-03-15
hklongshao 写道 不能言说的伤 写道 这个的主要区别是,举个例子,例如,a是用来接收页面的参数的,。如果传过来的参数为null,那么如果是a=!null这种方式的话,,会报一个空指针异常,,儿null!=a则不会、
这个说法我知道的。而且也理解的。我是想知道从效率方面是不是有什么优化。 多么强大的理论 LZ竟然理解了 表示鸭梨很大 |
|
返回顶楼 | |
发表时间:2011-03-16
我艹 这个帖子里面的神仙真多
|
|
返回顶楼 | |
发表时间:2011-03-20
不能言说的伤 写道 这个的主要区别是,举个例子,例如,a是用来接收页面的参数的,。如果传过来的参数为null,那么如果是a=!null这种方式的话,,会报一个空指针异常,,儿null!=a则不会、
、 //第一种情况 if("a".equals(a)) //无论a 是否null都不会抛空指针异常 if(a.equals("a")) //a如果为null则抛出空指针异常 //第二种情况 if(null!=a) if(a!=null) //两者都不会抛出空指针异常 ps:写cpp的很多人喜欢写null!=a 我曾经写C++的,所以这习惯保留下来了,java里面更多应该是个人习惯。不过第一种和习惯无关,而是真的要规避空指针异常,第二种则纯粹是个人习惯 |
|
返回顶楼 | |
发表时间:2011-09-25
我猜 不能言说的伤 是不是记错了,如果把!=换成equals,你那个就说得过去了
|
|
返回顶楼 | |
发表时间:2011-09-26
为什么要写成null != a, 有什么意义??一般是测试变量的值。。。
|
|
返回顶楼 | |