JDK 14 RFR of JDK-8234783: Improve wording of spec of Record.equals
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Jan 6 21:22:23 UTC 2020
I like what you're trying to do, but the wording used to introduce the
names `cr` and `cp` feels a bit contorted. How about using a single
name, c, introduced up front in this line:
+ * of the argument. Equality of a component {@code c} is determined
as follows:
with the rest of the text updated accordingly. Note the use of the
indefinite article `a component` when the name is introduced, and the
definite article `the component` in subsequent references.
-- Jon
On 1/6/20 1:08 PM, Joe Darcy wrote:
> 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