Hi Paul,

- A minor point but in the argument names, its a bit inconsistent between using 'b' and 'a2'. I would have use 'a', and 'b' to be more consistent. (and yes the current methods show the same inconsistency)

- The @return(s) should have an 'otherwise {@code false}; otherwise maybe it is allowed to return true.

- In the implementation, I generally prefer the form of Objects.requireNonNull(o, "name") so the exception
identifies the offending argument.

- I thought the coding style has spaces around operators (like ==).

- The non-range checked version of equals should have the same behavior as:
   equals(a, 0, a.length, a2, 0, a2.length).

The range checked version should include the sentence:

"Also, two array references are  considered equal if both are {@code null}."

- The implementation will need to check for nulls before the rangeChecks.

Regards, Roger





On 11/12/2015 5:36 AM, Paul Sandoz wrote:
Hi,

I have made a retreat on this just to add the two missing equals methods:

   
http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/ 
<http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/>

I propose to revisit the overall null-handling semantics, especially for 
Comparable[] accepting methods, at a later date.

Paul.

On 4 Nov 2015, at 15:32, Paul Sandoz <paul.san...@oracle.com> wrote:

Hi,

Please review:

  
http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/ 
<http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8141409-Arrays-equals-comparator/webrev/>
  https://bugs.openjdk.java.net/browse/JDK-8141409 
<https://bugs.openjdk.java.net/browse/JDK-8141409>

This builds on (the already reviewed):

  https://bugs.openjdk.java.net/browse/JDK-8033148 
<https://bugs.openjdk.java.net/browse/JDK-8033148>
  http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8033148-Arrays-lexico-compare/webrev/ 
<http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8033148-Arrays-lexico-compare/webrev/>

and adds yet more methods to Arrays, only two this time though, to fill out the 
missing gaps related to array equality with a comparator.

In addition i added an Objects.compare method, which simplifies the 
implementations of some object-bearing methods.

Both additions simplify the specification some object-bearing methods.

Paul.

Reply via email to