试图实现简单的任务陷入奇怪的问题:
class User{
String login;
String pwrd;
User(String lg,String pw){
this.login=lg;
this.pwrd=pw;
}
public String toString(){
return this.login;
}
public boolean equals(String a){
return this.login.equals(a);
}
public boolean equals(User t){
return this.login.equals(t.toString());
}
}
public class Foo{
public static void main (String[] args)
{
HashMap<User,Boolean> a=new HashMap<>();
User a1=new User("asd","123"),a2=new User("asd","134");
a.put(a1,false);
a.put(a2,false);
System.out.println(a.containsKey(a2));
System.out.println(a.containsKey("asd"));
}
}
Run Code Online (Sandbox Code Playgroud)
结果我希望两个containsKey检查都是真的.进一步在代码中它将被越来越多地使用.所以首先要理解为什么它表现如此,如果可能的话修复它.任何帮助赞赏.