因为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);
- }
- }
复制代码 |