Gå til innhold

[Løst] Skrive lister til fil


Anbefalte innlegg

Skrevet

Heisann,

 

Sett at man har en

abstract class Dyr

og feks

 

class Hest extends Dyr

og

class Ku extends Dyr

 

Er det noe problem å legge inn hester og kuer i en ArrayList og deretter skrive dem til fil slik

try(ObjectOutputStream ut = new ObjectOutputStream(new FileOutputStream(fil))){
  ut.writeObject(liste);

 }catch(Exception e) {
 }

 

jeg får det hvertfall ikke til og lurer på om det er noe jeg ikke har fått med meg :p

Jeg får det til med lister med konkrete objekter.

Videoannonse
Annonse
Skrevet

"Jeg får det ihvertfall ikke til" er en utrolig dårlig beskrivelse. Hvis du ønsker hjelp, så få du gi oss mer å gå på.

Skrevet

Det står hva som er problemet.

Jeg får til å fylle arraylista med konkrete objekter og skrive dem til fil, men ikke når jeg fyller med abstrakte objekter.

Skrevet

Heisann,

 

Sett at man har en

abstract class Dyr

og feks

 

class Hest extends Dyr

og

class Ku extends Dyr

 

Er det noe problem å legge inn hester og kuer i en ArrayList og deretter skrive dem til fil slik

try(ObjectOutputStream ut = new ObjectOutputStream(new FileOutputStream(fil))){
  ut.writeObject(liste);

 }catch(Exception e) {
 }

 

jeg får det hvertfall ikke til og lurer på om det er noe jeg ikke har fått med meg :p

Jeg får det til med lister med konkrete objekter.

Er helt sikkert noe du ikke har fått med deg.

 

Dette vil funke

ArrayList<Dyr> liste = new ArrayList<Dyr>();
liste.add(new Ku());
liste.add(new Hest());

 

Her vil du få en error når du prøver å sette inn en ny ku.

ArrayList<Hest> liste = new ArrayList<Hest>();
liste.add(new Ku());
liste.add(new Hest());

 

Dette er fordi Hest og Ku utvider Dyr, dvs de har samme "stamtre", de arver fra Dyr. Ku og Hest er forskjellige. Det er sikkert ikke dette du lurer på. Abstrakte klasser er bare beskrivelser, du kan ikke lage instanser av dem. Det må du gjøre med vanlige klasser.

Skrevet

Jeg fikk ordna det, jeg hadde glemt å serialisere superklassen.

Jeg trodde kanskje jeg måtte bruke en annen type liste for å sette inn abstrakte, men det gikk til slutt :)

Skrevet

Det står hva som er problemet.

 

Ja, det står at du ikke får det til. Men hva du legger i det aner jo ikke vi. Det forteller jo ikke oss noe som helst.

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...