From ee528aef5af0e6313947c6d8f1dffe4a8abb44e9 Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Fri, 31 Jul 2026 14:01:29 -0700 Subject: [PATCH] JDK-8389539: Clarify equivalence class sizing with value objects --- src/java.base/share/classes/java/lang/Object.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/java.base/share/classes/java/lang/Object.java b/src/java.base/share/classes/java/lang/Object.java index 045ceacd205..25cb0d41e50 100644 --- a/src/java.base/share/classes/java/lang/Object.java +++ b/src/java.base/share/classes/java/lang/Object.java @@ -174,8 +174,12 @@ public class Object { * indistinguishable value objects ({@code x == y} has the value * {@code true}). *

- * In other words, under the object equality equivalence - * relation, each equivalence class only has a single element. + * Therefore, under the object equality equivalence relation, each + * equivalence class only has a single element for identity + * classes. For value classes, there is not necessarily a similar + * constraint as multiple indistinguishable value objects could be + * constructed, depending on the semantics of the particular value + * class. * * @apiNote * It is generally necessary to override the {@link #hashCode() hashCode}