当前位置: 代码迷 >> Java相关 >> 新手,求指教,该如何处理
  详细解决方案

新手,求指教,该如何处理

热度:7358   发布时间:2013-02-25 21:48:56.0
新手,求指教
String[] names=new String[10];
/**用于指定位置查找name
 *参数:start表示开始位置,end结束位置,name是需要查找的那个姓名。
**/
public boolean seacherName(int start,int end,String name){
  boolean result=false;
  for(int i=start-1;i<end;i++){
  if(name.equals(names[i]))
  result=true;
  }
  return result;
  }

在我没有赋值之前,我调用这个方法,输入名字为字符串的初始值null,为什么返回值是false?
求讲述下原理。

------解决方案--------------------------------------------------------
调用的格式是seacherName(0,10,null)还是seacherName(0,10,"null")?
如果是第一种肯定会抛NullPointerException
第二种肯定会返回false啊!"null".equals(null)必定为false
因为String中覆盖了Object中的equals方法
看一下源代码就知道了
Java code
boolean equals(Object object){       if (this == anObject) {        return true;    }    if (anObject instanceof String) {           //........remainder}
  相关解决方案