不确定如何完成这个 equals 方法

Not sure how to complete this equals method

有人可以帮我解决这个问题吗?我已经尝试查找其他示例以找到我需要做的事情并将 运行 保存到名为 EqualsBuilder 的东西中,这是我需要使用的东西吗?如果它不满足任何一个 IF,我是否需要让它再次调用 equals?

以下代码包含一个 class 定义和一个不完整的方法定义。 equals 方法用于比较建筑物。 如果建筑物具有相同的名称和楼层数(但不一定是同一栋建筑物),则 return 为真,否则为假。

public class Building {      
    private String name;      
    private int noOfFloors;

    public boolean equals (Object rhs) {          
        if (this == rhs) { 
            return true; 
        }          
        if (!(rhs instanceof Building)) { 
            return false; 
        }          
        Building b = (Building) rhs;     

        // missing return statement      
    }  
}

在 instanceOf 测试之后,您想将对象的字段与另一个对象进行比较。 Objects.deepEquals() 之类的东西应该可以很好地满足您的需求。

您现在唯一需要测试的是两个对象的字段。如果它们相等,那么你应该 return 为真,如果其中至少有一个不相等,那么你应该 return 为假。

由于在这种情况下您的字段是 intString,您可以对整数字段使用 ==,对字符串字段使用 .equals()

像这样的东西应该可以很好地完成工作:

if(this.name.equals(b.name) && this.noOfFloors == b.noOfFloors){
    return true ;
}
else{
    return false;
}
public boolean equals (Object rhs) {          
    if (this == rhs) { 
        return true; 
    }          
    if (!(rhs instanceof Building)) { 
        return false; 
    }          
    Building b = (Building) rhs;     

    // This is what you're supposed to add. It will return true only if both
    // object's attributes (name and number of floors) are the same
    return this.name.equals(b.name) && this.noOfFloors == b.noOfFloors;
}