一个简单的缺费解的问题

项目中常使用判断 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);

没有本质区别,就依据每个人的习惯好了,也就淡腾的人爱纠结这种琐碎的问题,你们项目经理不行!