新手,求指教
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
}