读书人

新手求指教,该如何处理

发布时间: 2012-01-18 00:23:26 作者: rapoo

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

读书人网 >Java相关

热点推荐