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