package com.dao;
import com.po.Users;
//用户的业务逻辑类
public class UsersDAO {
//用户登录方法
public boolean usersLogin(Users u)
{
if("admin".equals(u.getUsername())&&"admin".equals(u.getPassword()))
{
return true;
}
else
{
return false;
}
}
}
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
代码乱了。重发
奥!原来是String这个类里面已经重写过equals方法了。谢谢!
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
上面是字符串 equals() 重写后的源码,第一个判定中
if (this == anObject) ,当对象为字符串时,字面量相同时,两个对象指向字符串存储池的同一个位置,所以返回 true ,因此无需重写。