A Java JComparator that wraps a function returning Comparison. The given compareElements() function will be used to compare null values if Element covers Null. Otherwise, nulls will be ordered according to the nulls parameter.

no subtypes hierarchy

Initializer
JavaComparator(Comparison compareElements(Element x, Element y), smaller|larger nulls = ...)
Parameters:
  • nulls = smaller

    smaller to consider null less than non-null, or larger to consider null greater than non-null.

Inherited Attributes
Attributes inherited from: Object
Methods
compareSource Codeshared actual Integer compare(Element? first, Element? second)
Refines Comparator.compare
equalsSource Codeshared actual Boolean equals(Object that)

Determine if two values are equal.

For any two non-null objects x and y, x.equals(y) may be written as:

x == y 

Implementations should respect the constraints that:

  • if x===y then x==y (reflexivity),
  • if x==y then y==x (symmetry),
  • if x==y and y==z then x==z (transitivity).

Furthermore it is recommended that implementations ensure that if x==y then x and y have the same concrete class.

A class which explicitly refines equals() is said to support value equality, and the equality operator == is considered much more meaningful for such classes than for a class which simply inherits the default implementation of identity equality from Identifiable.

Note that an implementation of equals() that always returns false does satisfy the constraints given above, as long as the class does not inherit Identifiable. Therefore, in very rare cases where there is no reasonable definition of value equality for a class, for example, function references (Callable), it is acceptable for equals() to be defined to return false for every argument.

Refines Identifiable.equals ultimately refines Object.equals
Inherited Methods
Methods inherited from: Object
Methods inherited from: JComparator<T>
compare, equals