为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这里不需要重写equals方法呢

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;

}

}

}


正在回答

3 回答

   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;

   }

代码乱了。重发


1 回复 有任何疑惑可以回复我~
#1

慕神3026817 提问者

奥!原来是String这个类里面已经重写过equals方法了。谢谢!
2018-08-24 回复 有任何疑惑可以回复我~

奥!原来是String这个类里面已经重写过equals方法了。谢谢!

0 回复 有任何疑惑可以回复我~
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 ,因此无需重写。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这里不需要重写equals方法呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信