项目中常使用判断 if(list!=null && list.size()>0 ){}
而项目经理却说这类判断不好 最好是
if(null!=list && list.size()>0){}
list!=null 和 null!=list 这样写法有什么区别!
在c/c++中,一般比较时会将常量放在前面,比如list==null,会建议写为null==list,因为一些粗心的童鞋会将==写为=,编译器不会报语法错误。如果常量写在前面,这类问题编译时就会发现。
在java中,类似情况编译器会有语法错误提示,所以可以不必这么写。
这种写法其实是受C语言的影响,是避免空指针异常的一种好习惯
java嘛,看个人习惯和公司的要求
以前也有人讨论过:[url]http://www.iteye.com/topic/26485[/url]
这个写法根本不会报空指针异常,针对这个做法一般是有"".equals(a)的时候,如果反过来,当a为null的时候会报空指针异常。
其实这个是受null==list || list.size() == 0的影响
如果null==list写成list == null,有时==号会误写成=,即list=null,这个时候不会报错,但如果null写在前面,null=list,这个时候就会编译出错
在java effective中有建议说,list类型不要返回null,直接返回一个对象,然后判断该对象的长度!
看来他说的是有道理的
我还是喜欢用list != null,不过一般我在系统中都约定list不会null。
楼主的写法List!=null 和null!=List 是一样的
equals就需要注意,常量最好写在前面
这个真是习惯问题 没有对错
个人写法问题,与性能无关。
不过话说回来。你在程序中,不应该让集合类为null,而是不管什么情况都返回一个集合类实例,之后对集合类的size进行判断。
这就好像有人喜欢用左手夹菜,有人喜欢用右手夹菜一样的道理,不需要在这种事情上过于纠结,认真就输了
个人习惯问题吧,怎么写都行,不受影响.
最好 变量在前 Null 在后,看着舒服.
CollectionUtils.isNotEmpty(list);
没有本质区别,就依据每个人的习惯好了,也就淡腾的人爱纠结这种琐碎的问题,你们项目经理不行!