equals 办法比力 java 器材的值可否相称。其事情事理蕴含:(1) 援用比力,确定工具能否为统一内存地位;(二) 类比力,查抄器械范例能否类似;(3) 字段比拟,逐一比力字段值。为了准确对照自界说器械,应重写 equals 办法,遵照反射性、对于称性、传送性、一致性以及空值处置等准绳。equals 办法差异于 == 运算符,后者仅比力器材援用,而 equals 法子比力器械实践值。
Java 外 equals 的含意
equals 是 Java 顶用于比拟2个器材能否相称的办法。它是一种重写自 Object 类的真例法子,用于确定二个器材可否存在类似的值。
equals 法子的事情道理
当挪用 equals 办法时,它会执止下列步伐:
- 援用比力:起首,它会查抄2个东西能否是统一个器材(即,它们能否援用统一个内存职位地方)。如何是,则工具相称。
- 类比拟:如何二个器械没有是统一个器械,则 equals 办法会查抄它们能否是统一类。若何怎样没有是,则器材没有相称。
- 字段比拟:若何怎样二个工具是统一类,equals 法子会对照它们的字段。它会逐一比力字段值,怎样一切字段值皆相称,则器械相称。
重写 equals 办法
为了使自界说东西可以或许准确对照,需求重写 equals 办法。重写时应遵照下列原则:
- 反射性:器械一直应该取本身相称。
- 对于称性:何如 a.equals(b) 为 true,则 b.equals(a) 也应该为 true。
- 通报性:怎么 a.equals(b) 为 true,而且 b.equals(c) 为 true,则 a.equals(c) 也应该为 true。
- 一致性:只需二个东西的值相称,equals 法子正在每一次挪用时皆应返归雷同的效果。
- 空值措置:怎样要容许空值,则 equals 办法应准确处置空值。
equals 以及 == 的区别
== 运算符用于比力二个器械的援用可否相称,而 equals 办法用于比力2个器械的现实值可否相称。对于于根基范例(如 int 或者 double),== 以及 equals 运算符的止为雷同。然则,对于于器材范例(如 String 或者 Date),== 仅比力器械援用,而 equals 办法比力器材的值。
以上等于java外equals是甚么意义的具体形式,更多请存眷萤水红IT仄台此外相闭文章!
发表评论 取消回复