java - 使用java比较字符串

标签 java

我必须创建一个 equals 方法,如果政客的头衔相同,则该方法返回 true。如何比较字符串?

到目前为止,这就是我尝试编写的方式:

public class Politician implements Priority{
private String name, title;
private int a;
public Politician(String n, String t, int p){
    name=n;
    title=t;
    a=p;
}
public boolean equals(Politician a){
    if(title.equals(a.title))
        return true;
    return false;
}

但是,它总是返回 false。即使当我测试时:

Priority t4= new Politician("Arnie", "Governor", 4);
    Politician t5= new Politician("Bill", "Governor", 10);
    System.out.println(t5.equals(t4)); 
    System.out.println(t4.equals(t5));

我以前写过 equals() ,但不知道为什么它不再起作用

最佳答案

public boolean equals(Politician a) 不会覆盖 java.lang.Object 类中的 equals 方法。

声明为public boolean equals(Object a)以覆盖该方法。

public boolean equals(Object a) {
        Politician p = (Politician) a;
        return title.equals(p.title);
    }

顺便说一句,即使在 Politician 类中 title 是私有(private)的,在 Politician 类中使用 p.title 也是完全合法的。查看这篇文章:Access private field of another object in same class

关于java - 使用java比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33447445/

相关文章:

java - 使用本地库覆盖 Maven 依赖项

java - Noto-sans 不与 Jasper 合作

java - 如何指定自定义 Maven 私有(private)存储库的凭据

java - 延迟一段时间后执行任务,如果遇到无限循环则停止它

java - 我如何计算Java中两个gps点之间的距离?

java - 如何设置 OnClickListener (Android)

java - 为什么我的 BufferedInputStream.read() 不能接收 -1?

java - 查找 ImageView 的真实位置

java - String.codePointBefore() 什么时候有用?

java - 使用 Java 8 流和谓词的此代码的时间复杂度