equal的使用 java

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:36:51
public int findIndex (String searchname) {
int i = 0;
boolean deter;
while(i <= count - 1) {
if (entry[i].getName.equals(searchname)) {
deter = true;
return i;
}
i++;
}
if(deter == false)
return - 1;
if (entry[i].getName.equals(searchname)) 这行不能运行 请问哪里错了

如果你的entry数组里面的对象有getName()方法并且返回string类型的name,那么你出错的那句话应该写成
if(entry[i].getName().equals(searchname))

你是想问eqials和==有什么区别吗?
下面是我的一个测试
String str = new String("ne");
String str1 = "ne";
String str2 = new String("ne");
String str3 = "ne";
System.out.println(str==str2); //false
System.out.println(str.equals(str2)); //true
System.out.println(str==str1); //false
System.out.println(str.equals(str1)); //true
对于String,默认的"=="比较内存中是不是同一个对象的引用,而不仅仅是内容;
equal()只比较内容是否一致。

你换成searchname.equals(entry[i].getName())

还有,你的entry[i]是那来的?

entry[i]是啥?在哪儿定义的?报的错又是什么 说清楚嘛

getName应该是方法来着的吧,如果是方法就都要括号的。改一改试一试就知道了

关键看你的equals是不是重写了 是怎么重写的