黑马程序员技术交流社区
标题:
空指针异常问题
[打印本页]
作者:
黑马-王鹏
时间:
2013-3-17 14:32
标题:
空指针异常问题
本帖最后由 黑马-王鹏 于 2013-3-17 22:41 编辑
class Person
{
public void checkName(String name)
{
//if(name.equals("lisi"))//NullPointerException
if("lisi".equals(name))//if(name!=null && name.equals("lisi"))
System.out.println("YES");
else
System.out.println("no");
}
}
main()
{
Person p = new Person();
p.checkName(null);
}
//毕老师留下的代码,1.我想知道要怎样补充代码才会实现运行异常?
// 2.怎样才能避免空指针异常?
复制代码
希望可以解答详细点,谢谢!
作者:
何仕映
时间:
2013-3-17 15:11
因为equals需要对象去调用,但是与这个对象相比的可以是任何东西,包括为空(null).所以在checkName()里面判段的时候,你如果用if(name.equals("lisi")),在程序中就会产生异常,如果用if("lisi".equals(name)),则就只会输出是与不是。
下面是补全的代码(不会有异常):
class Person
{
public void checkName(String name) //定义比对的方法
{
if("lisi".equals(name)) //这里需注意是lisi与传进来的比,还是传进来的值与lisi相比。
System.out.println("YES");
else
System.out.println("no");
}
}
class CheckDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.checkName(null);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2