当
user时null的时候,null是没有equals成员函数的,
user.equals肯定报空指针错误。
但是下面的是先判断
username 是不是null,如果是null就不会再执行
username.equals("")了(||是短路或),而如果
username 不是null,那执行
username.equals("")自然就没错了。
首先,判断空不用.equals(null)而用==null
其次,if(username==null|| username.equals(""))这样的写法中,隐含着运算顺序,先计算第一个等式,就是说必须要满足usename不为空,才会执行username.equals(""),这样就确保了不会出现空指针引用。
使用.equals()方法的前提,必须是对象不为null。如果对象本身都没有初始化,哪里来的方法和属性呢?
回复
@瓣挚锅:使用.equals()方法的前提,必须是对象不为null。如果对象本身都没有初始化,那么在判断的时候,就只有==和!=了。为啥必须==null呢