黑马程序员技术交流社区

标题: null问题 [打印本页]

作者: hel    时间: 2013-11-10 01:19
标题: null问题
if("lisi".equels(name))

if(name.equels("lisi"))
当name=null时
有什么区别?
作者: 中关村阿旺    时间: 2013-11-10 01:36
本帖最后由 中关村阿旺 于 2013-11-10 01:37 编辑

当name=null时,后面这句代码:if(name.equals("lisi"))会产生空指针异常。
if("lisi".equals(name))这句代码当name=null时,"lisi"这个字符串对象调用equals()方法和null比较
一个有内容,有内存地址,一个没有内容,没有内存地址,所以会返回false。
if(name.equals("lisi"))这句代码当name=null时,一个没有值,没有内存地址的对象怎么能调用方法跟别的对象比较呢?
所以会发生异常。
楼主的equals()方法是不是拼错了?
作者: hel    时间: 2013-11-10 02:14
中关村阿旺 发表于 2013-11-10 01:36
当name=null时,后面这句代码:if(name.equals("lisi"))会产生空指针异常。
if("lisi".equals(name))这句代 ...

哦 知道了 equals是null时 不能调用方法,调用方法就会空指针异常
作者: Mr.__ㄨīn    时间: 2013-11-10 16:42
name=null,运行if(name.equals("lisi"))时会出现空指针异常。
运行if("lisi".equals(name))时,用"lisi"的equals()方法和null比较。会返回false。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2