René Holdgard Wilhardt <rhw@cadeye.dk> wrote in message
news:3bd99fdd$0$350$edfadb0f@dspool01.news.tele.dk...
> Hej.
>
> Jeg har lavet en klasse Broek. Den skal indeholde to metoder til
> sammenligning: compareTo og equals
> Jeg får tre compileringsfejl. Det er de tre kald jeg gør på
rhs-objektet den
> brokker sig over. Jeg forstår egentlig godt hvorfor, men jeg kan
ikke finde
> ud af hvordan jeg løser det og håber at i kan hjælpe.
> Her er hvad jeg har gjort:
>
> public class Broek implements Comparable
> {
> private long taeller;
> private long naevner;
>
> /* her kommer så en vældig masse metoder....de er udeladt her
> Jeg sender gerne hele klassen hvis det kan hjælpe
> */
>
> public int compareTo( Object rhs)
> file://PRE: input rhs (right-hand-side)
> file://POST: returnerer 0 hvis this-objektet == rhs,
> // 1 hvis this-objektet > rhs,
> // -1 hvis this-objektet < rhs
> {
> if( !(rhs instanceof Broek) || rhs == null)
> throw( new ClassCastException());
>
> if( this.equals( rhs))
> return 0;
>
> if( this.getRealValue() < rhs.getRealValue())
> return -1;
>
> else return 1;
> }
>
>
> public boolean equals( Object rhs)
> file://PRE: input rhs (right-hand-side)
> file://POST: returnerer true hvis this-objektet == rhs ellers
false
> {
> if( rhs != null && rhs instanceof Broek)
> {
> if( this == rhs)
> return true;
>
> if( this.taeller == rhs.taeller && this.naevner ==
rhs.naevner)
> return true;
> }
> return false;
> }
> }
>
>
> Hilsen René
>
Hej René
Det største problem med dine metoder er at du ikke cast'er det
indkomne object til den rigtige type. Her er et udkast til hvordan
de to metoder kan se ud (dog ikke teste):
public int compareTo( Object rhs) {
double thisVal = this.getRealValue();
double anotherVal = ( ( Broek ) rhs ).getRealValue();
return ( thisVal < anotherVal ? -1 :
( thisVal == anotherVal
? 0 : 1 ) );
}
og
public boolean equals( Object rhs ) {
if( this == rhs)
return true;
if( this.taeller == ( ( Broek ) rhs ).taeller &&
this.naevner == ( ( Broek ) rhs ).naevner )
return true;
return false;
}
Håber du kan bruge det til noget
.
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
ICQ# 116946261
Se SpaceCommunicator - en peer-to-peer chat-applikation i Java