java.lang.Object
org.apache.commons.lang.builder.CompareToBuilderTest.TestObject
org.apache.commons.lang.builder.CompareToBuilderTest.TestSubObject
- All Implemented Interfaces:
- java.lang.Comparable
- Enclosing class:
- CompareToBuilderTest
- static class CompareToBuilderTest.TestSubObject
- extends CompareToBuilderTest.TestObject
|
Field Summary |
private int |
b
|
b
private int b
CompareToBuilderTest.TestSubObject
public CompareToBuilderTest.TestSubObject()
CompareToBuilderTest.TestSubObject
public CompareToBuilderTest.TestSubObject(int a,
int b)
equals
public boolean equals(java.lang.Object o)
- Description copied from class:
java.lang.Object
- Determine whether this Object is semantically equal
to another Object.
There are some fairly strict requirements on this
method which subclasses must follow:
- It must be transitive. If
a.equals(b) and
b.equals(c), then a.equals(c)
must be true as well.
- It must be symmetric.
a.equals(b) and
b.equals(a) must have the same value.
- It must be reflexive.
a.equals(a) must
always be true.
- It must be consistent. Whichever value a.equals(b)
returns on the first invocation must be the value
returned on all later invocations.
a.equals(null) must be false.
- It must be consistent with hashCode(). That is,
a.equals(b) must imply
a.hashCode() == b.hashCode().
The reverse is not true; two objects that are not
equal may have the same hashcode, but that has
the potential to harm hashing performance.
This is typically overridden to throw a java.lang.ClassCastException
if the argument is not comparable to the class performing
the comparison, but that is not a requirement. It is legal
for a.equals(b) to be true even though
a.getClass() != b.getClass(). Also, it
is typical to never cause a java.lang.NullPointerException.
In general, the Collections API (java.util) use the
equals method rather than the ==
operator to compare objects. However, java.util.IdentityHashMap
is an exception to this rule, for its own good reasons.
The default implementation returns this == o.
- Overrides:
equals in class CompareToBuilderTest.TestObject
setA
public void setA(int a)
getA
public int getA()
compareTo
public int compareTo(java.lang.Object o)
- Description copied from interface:
java.lang.Comparable
- Compares this object with another, and returns a numerical result based
on the comparison. If the result is negative, this object sorts less
than the other; if 0, the two are equal, and if positive, this object
sorts greater than the other. To translate this into boolean, simply
perform
o1.compareTo(o2) <op> 0, where op
is one of <, <=, =, !=, >, or >=.
You must make sure that the comparison is mutual, ie.
sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) (where sgn() is
defined as -1, 0, or 1 based on the sign). This includes throwing an
exception in either direction if the two are not comparable; hence,
compareTo(null) should always throw an Exception.
You should also ensure transitivity, in two forms:
x.compareTo(y) > 0 && y.compareTo(z) > 0 implies
x.compareTo(z) > 0; and x.compareTo(y) == 0
implies x.compareTo(z) == y.compareTo(z).
- Specified by:
compareTo in interface java.lang.Comparable