JDK 14 RFR of JDK-8234783: Improve wording of spec of Record.equals
Joe Darcy
joe.darcy at oracle.com
Mon Jan 6 21:08:01 UTC 2020
Hello,
Please review a clarification to the specification of Record.equals:
JDK-8234783: Improve wording of spec of Record.equals
http://cr.openjdk.java.net/~darcy/8234783.0/
Patch below.
Thanks,
-Joe
--- old/src/java.base/share/classes/java/lang/Record.java 2020-01-06
13:00:52.179585999 -0800
+++ new/src/java.base/share/classes/java/lang/Record.java 2020-01-06
13:00:51.987681999 -0800
@@ -105,9 +105,21 @@
* The implicitly provided implementation returns {@code true} if and
* only if the argument is an instance of the same record type as
this object,
* and each component of this record is equal to the corresponding
component
- * of the argument, according to {@link
java.util.Objects#equals(Object,Object)}
- * for components whose types are reference types, and according to
the semantics
- * of the {@code equals} method on the corresponding primitive
wrapper type.
+ * of the argument. Equality of the components is determined as
follows:
+ * <ul>
+ *
+ * <li> If the component is of a reference type, the component {@code
+ * cr} is considered equal if and only if {@link
+ * java.util.Objects#equals(Object,Object)
+ * Objects.equals(this.cr(), r.cr()} would return true .
+ *
+ * <li> If the component is of a primitive type, using the
+ * corresponding primitive wrapper class {@code P} the component
+ * {@code cp} is considered equal if and only if {@code
+ * P.valueOf(this.cp()).equals(P.valueOf(r.cp()))} would return
+ * true.
+ *
+ * </ul>
*
* @see java.util.Objects#equals(Object,Object)
*
More information about the core-libs-dev
mailing list