Let me know how that latest change looks Michael. I took a slightly longer
route, mainly because the medium of email gave me time to sit and twiddle
my thumbs.

I've also not gone for your ultra paranoid option. It is a good idea
though I believe.

Bay

On Wed, 20 Feb 2002, Michael A. Smith wrote:

> On Thu, 21 Feb 2002 [EMAIL PROTECTED] wrote:
> > Sounds valid. As far as the contract goes, how about if a
> > class-cast-exception is thrown in both cases, or if another 'illegal
> > input' decision is taken, ie) returning 0.
>
> Yup.  I'd be fine with:
>
>   int compare(Object o1, Object o2) {
>     return ((Comparable)o1).compareTo((Comparable)o2);
>   }
>
> With that, you're placing the burden on the comparable object to ensure it
> implements the compareTo method with regards to the Comparable contract,
> rather than keeping the burden of the Comparator contract.  Then, it's not
> your problem.  :)
>
> If you really want to be paranoid, you could do both and make sure they
> return inverses:
>
>   int compare(Object o1, Object o2) {
>     int result1 = ((Comparable)o1).compareTo(o2);
>     int result2 = ((Comparable)o2).compareTo(o1);
>
>     if(result1 == 0 && result2 == 0) return 0;
>     if(result1 < 0 && result2 > 0) return -1;
>     if(result1 > 0 && result2 < 0) return 1;
>
>     // results inconsistent
>     throw new ClassCastException("o1 not comparable to o2");
>   }
>
> that may be a bit too paranoid though.
>
> > As for its use, consider the following code:
>
> yeah, that's how I figured it would be used.  :)
>
> regards,
> Michael
>
>
>
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to