Java 布尔等于法

Java 布尔等于法,java,Java,编写一个抽象类项目。抽象类是父类,包含一个equals方法。我的项目的一部分是创建一个Boolean equals方法,该方法比较3个子类的客户机ID(long),以确保它们没有任何重复的ID。在实现代码时遇到问题。以下是我到目前为止的情况 public static boolean equals(Object A, Object B, Object C) { if(A.equals(B) || A.equals(C) || B.equals(C)) return t

编写一个抽象类项目。抽象类是父类,包含一个equals方法。我的项目的一部分是创建一个Boolean equals方法,该方法比较3个子类的客户机ID(long),以确保它们没有任何重复的ID。在实现代码时遇到问题。以下是我到目前为止的情况

public static boolean equals(Object A, Object B, Object C) { 
    if(A.equals(B) || A.equals(C) || B.equals(C)) 
        return true; 
    else 
        return false;
}

需要帮助将客户端ID的3个类值放到代码中,然后将代码合并到toString()方法中。

您可以将方法更改为以下内容:

public static boolean equals(Object A, Object B, Object C) {
    return A != null && B != null && C != null && (A.equals(B) || A.equals(C) || B.equals(C));
}
几件事:

  • 您拥有的任何地方:

    if (cond) {
        return true;
    } else {
        return false;
    } 
    
    您只需返回
    cond
    返回cond

  • 添加了非空验证:
    A!=空值(&B)=null&&C!=空
  • 您应该在每个类(
    A
    B
    C
    )上重写
    equals()
    方法,并在equals中包含要使用的字段(在您的示例中仅为id)

  • 我没有得到你想要的,但我要试一试:

    static class Client {
        private long id;
    
        @Override
        public boolean equals(Object obj) {
            if (this == obj) return true;
            if (getClass() != obj.getClass()) return false;
            Client oth = (Client) obj;
            return oth.id == this.id;
        }
    
        Client(long id) {
            this.id = id;
        }
    }
    
    public static boolean equals(Object A, Object B, Object C) {
        return A.equals(B) || A.equals(C) || B.equals(C);
    }
    
    public static void main(String[] args) {
        Object c1 = new Client(4);
        Object c2 = new Client(3);
        Object c3 = new Client(2);
    
        equals(c1, c2, c3);
    }
    

    请让我们理解它。import java.util.Scanner;公共类测试{public static void main(String[]args){Scanner s=new Scanner(System.in);long[]array=new long[3];for(int i=0;i