Vonbo Skrevet 28. april 2005 Del Skrevet 28. april 2005 (endret) public String skrivUt(){ String utskrift = ""; Node loper = forste; while(loper != null){ Person innhold = (Person)loper.getInfo(); utskrift += innhold.toString(); loper = loper.neste; } return utskrift; } Jeg får: java.lang.ClassCastException Jeg vet at det er Person innhold = (Person)loper.getInfo(); utskrift += innhold.toString(); som ikke funker. Men jeg har brukt samme opplegg før, og forstår ikke hva som er feil. Noen som ser? Takker Endret 28. april 2005 av Vonbo Lenke til kommentar
Patton Skrevet 28. april 2005 Del Skrevet 28. april 2005 loper.getInfo(); ..returnerer ikke klassen du caster til. Nå er det vanskelig å vite hva som er feil, siden du i ditt andre kodeeksempel siterer en kode som ikke forekommer i ditt første kodeeksempel. Lenke til kommentar
Vonbo Skrevet 28. april 2005 Forfatter Del Skrevet 28. april 2005 det skulle være samme kodesnutt... rettet nå. Hva skjer ved casting? Lenke til kommentar
buskmann Skrevet 28. april 2005 Del Skrevet 28. april 2005 I kodensnutten din står det at getInfo returnerer et Person-objekt. Jeg tror ikke det stemmer med metodedeklarsjonen din. Lenke til kommentar
runeb Skrevet 28. april 2005 Del Skrevet 28. april 2005 Er det loper som skal cast'es til en Person eller er det det metoden getInfo() returnerer? Et par ting du kan prøve: Person innhold = ((Person)loper).getInfo(); Person innhold = (Person)(loper.getInfo()); Lenke til kommentar
Vonbo Skrevet 29. april 2005 Forfatter Del Skrevet 29. april 2005 Jeg kjenner ikke til hva casting egentlig gjør, så jeg vet ikke. Klassen Person er abstrakt, og klassene Pasient og Lege er subklasser (extends Person). Kan de ha noe med dette å gjøre? Lenke til kommentar
dostojevski Skrevet 29. april 2005 Del Skrevet 29. april 2005 (endret) Casting spesifiserer hvilken klasse et objekt er av. Det brukes typisk når en henter ut et objekt av en eller annen container eller liste. loper.getinfo() returnerer antagelig et objekt av klassen Object. Det du prøver å si til Java er: "Dette objektet, som i utgangspunktet er av klassen Object (superklasse som alle klasser arver fra), er egentlig et Person-objekt. Behandle det som et Person-objekt fra nå av." Men hvis det faktisk ikke er et Person-objekt du har hentet ut vil du få den feilen du skisserer. Mao. ligger det minst et objekt i loper som ikke er Person eller arver fra Person. Alternativt har du nerfet metodedeklarasjonen til Node.getInfo(). Hvis denne metoden returnerer noe annet enn Person eller Object (en String kanskje?) kan du også få denne feilen. Endret 29. april 2005 av dostojevski Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå