看到一个判断条件:
FLAG !=NULL && !"".equals(FLAG)
//先判断是否有内存空间,再判断是否为空字符串。
//这两个写在一起可以防止抛java.lang.NullPointerException异常
//类似的:
FLAG ==NULL || "".equals(FLAG)
很纳闷:这俩条件不都是在判断是否非空吗,干嘛写俩?
- 这里插一句&&与&的区别:
&连接的两个条件都得判断;
&&先判断第一个,若为true再判断第二个条件;若为false,则不再进行判断,直接返回false。*
FLAG !=NULL:判断FLAG是否有值(FLAG是否分配了内存空间);
“”.equals(FLAG):判断FLAG是否为空值。
NULL与isEmpty()是不同的。
FLAG !=NULL是在判断系统是否有为变量分配内存空间,即FLAG是否真的存在于内存中。
“”.equals(FLAG)是在判断FLAG的值是否为空。
如果不知道FLAG是否真的存在与内存中,就开始调用FLAG,会报空指针异常。
这可能是一个很好的编程习惯。