java - 在java中实现equals方法

标签 java

这是我为 Coor 类实现的 equals 类,它只包含 2 个整数 x 和 y。这是实现此方法的正确方法吗?

 public boolean equals(Object obj) {
        if (obj == null || obj.getClass() != this.getClass()) {
            return false;
        }
        Coor temp = (Coor) obj;
        if (temp.x == this.x && temp.y == this.y) {
            return true;
        } else {
            return false;
        }
    }

最佳答案

您可以再添加一项检查自反相等性(等于 self):

 public boolean equals(Object obj) {

    // Reflexive equality: did I get passed myself?
    if(this == obj){
        return true;
    }

    if (obj == null || obj.getClass() != this.getClass()) {
        return false;
    }

    Coor temp = (Coor) obj;
    return temp.x == this.x && temp.y == this.y;
}

关于java - 在java中实现equals方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655396/

相关文章:

java - 从序列中获取下一个值

java - 具有相同键的多个查询参数的 postman 获取请求返回空列表

java - 如何在我的 JSP 页面中访问 JSTL 核心设置的变量?

java - 加密/解密单元测试

java - Solr - 按字段字符数和字典值排序

java - Spring boot,JVM参数太多还是刚好够用?

java - Spring Boot 和 buildResponseEntity()

java - hsqldb hibernate 持久化@Lob

java - Apache PDFBox:编码问题

java - 为什么我需要将 @ResponseBody 添加到我的 Controller 操作中?