5066247: Refine the spec of equals() and hashCode() for j.text.Format classes

Reviewed-by: naoto, darcy
This commit is contained in:
Justin Lu 2023-10-02 05:06:45 +00:00
parent 93f662f4fc
commit 8fcf70e931
9 changed files with 141 additions and 25 deletions

View file

@ -2409,7 +2409,11 @@ public class SimpleDateFormat extends DateFormat {
}
/**
* {@return the hash code value for this {@code SimpleDateFormat} object}
* {@return the hash code value for this {@code SimpleDateFormat}}
*
* @implSpec This method calculates the hash code value using the value returned by
* {@link #toPattern()}.
* @see Object#hashCode()
*/
@Override
public int hashCode()
@ -2419,11 +2423,17 @@ public class SimpleDateFormat extends DateFormat {
}
/**
* Compares the given object with this {@code SimpleDateFormat} for
* equality.
* Compares the specified object with this {@code SimpleDateFormat} for equality.
* Returns true if the object is also a {@code SimpleDateFormat} and the
* two formats would format any value the same.
*
* @return true if the given object is equal to this
* {@code SimpleDateFormat}
* @implSpec This method performs an equality check with a notion of class
* identity based on {@code getClass()}, rather than {@code instanceof}.
* Therefore, in the equals methods in subclasses, no instance of this class
* should compare as equal to an instance of a subclass.
* @param obj object to be compared for equality
* @return {@code true} if the specified object is equal to this {@code SimpleDateFormat}
* @see Object#equals(Object)
*/
@Override
public boolean equals(Object obj)