Gå til innhold

Ett klasse/objekt problem


Anbefalte innlegg

hei

 

jeg har disse to linjene her

 

((Ansatt) personer.get(1)).gjørNoe();

((Person) personer.get(1)).gjørNoe();

 

De fleste her ser vel hva disse gjør. Men problemet mitt er at jeg ikke vet hva klassen som det spesifikke objektet hører til heter.

 

altså hva om jeg skriver:

 

((personer.get(1).getClass()) personer.get(1)).gjørNoe();

 

så kunne det i teorien funka.

 

men det funker ikke selvfølgelig.

 

Noen som har en løsning på dette?

Lenke til kommentar
Videoannonse
Annonse

Bruk arv:

 

class Ansatt extends Person {
..
}

class Person {
   public void gjørNoe() {
       ...
   }
}

class Main {
  public static void main(String[] args) {
       ArrayList<Person> personer = new ArrayList<Person>();
       personer.add(new Ansatt());
       personer.add(new Person());
       personer.get(0).gjørNoe();
       personer.get(1).gjørNoe();
  }
}

Endret av Patton
Lenke til kommentar

Vet ikke om jeg er helt på jordet, men det der bør vel ikke være nødvendig hvis man a) implementerer samme interface, b) arver, som nevnt (selv om interface ofte er en bedre idé) eller c) bruker generiske typer.

 

Men vanskelig å si når man bare får én linje kode, og ikke får vite om du har tilgang til å endre i andre klasser.

Lenke til kommentar
Vet ikke om jeg er helt på jordet, men det der bør vel ikke være nødvendig hvis man a) implementerer samme interface, b) arver, som nevnt (selv om interface ofte er en bedre idé) eller c) bruker generiske typer.

 

Men vanskelig å si når man bare får én linje kode, og ikke får vite om du har tilgang til å endre i andre klasser.

8606627[/snapback]

 

Bruker du arv eller implementerer samme interfacet er det ikke nødvendig å gjøre dette nei. Men hvis trådstarter ikke kontrollerer Person/Ansatt klassene (les skoleoppgave med faste rettningslinjer for disse klassene), er det en mulighet å gjøre dette.

Lenke til kommentar

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å
×
×
  • Opprett ny...