您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java 用.equals()和==运算符比较两个对象

Java 用.equals()和==运算符比较两个对象

==比较对象引用,它检查两个操作数是否指向同一对象(不是等效对象,是同一对象)。

如果要比较字符串(以查看它们是否包含相同的字符),则需要使用来比较字符串equals

在你的情况下,如果MyClass字符串匹配,则确实将两个居中实例视为相等,则:

public boolean equals(Object object2) {
    return object2 instanceof MyClass && a.equals(((MyClass)object2).a);
}

…但是通常,如果你要定义一个类,那么等效性要比单个字段的等效性强(a在这种情况下)。

旁注:如果你覆盖equals,则几乎总是需要覆盖hashCode。就像在equalsJavaDoc中说的那样:

请注意,通常有必要在重写此hashCode方法时重写该方法,以维护该hashCode方法的常规协定,该协定规定相等的对象必须具有相等的哈希码。

java 2022/1/1 18:20:34 有543人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶