Avatar billede webster Nybegynder
27. juni 2002 - 12:27 Der er 4 kommentarer og
1 løsning

instanceOf

Hejsa

Jeg sidder og leger med lidt kode hvor jeg har en række objekter der nedarver fra den samme class og som bliver sendt rundt i systemet upcastet til den type. Når jeg så skal havde downcastet dem igen har jeg tænkt mig at bruge instanceOf til at identificere dem, men jeg kom til at tænke på om den operator er meget resourcekrævende? Altså det egentlige spøgsmål er om det bedre kunne betale sig at indføre fx et objektType int felt i grundclassen som jeg så kunne tjekke på? (Selvom det er en grim måde)
Avatar billede disky Nybegynder
27. juni 2002 - 12:47 #1
Jeg vil umiddelbart gætte på at instanceOf også bruge en int eller lignende til at huske typen.

Så helt vildt resource krævende tror jeg ikke den er.

Men hvis du er nervøs kan du jo bruge en int selv, som jeg egentligt ikke mener er en grim metode.
Avatar billede webster Nybegynder
27. juni 2002 - 12:57 #2
hmm okay jeg tror jeg går for instanceof. I forhold til et int felt så kan man selvf. havde nogle static konstanter på rodklassen at tjekke udfra men jeg syntes stadigt det er mere uoverskueligt end instanceof. Jeg lader lige spørgsmålet stå åben i et øjeblik in case andre havde en holdning =)
Avatar billede soelvpil Nybegynder
27. juni 2002 - 13:32 #3
Det vil være dumt at lave en høkerløsning med en int selv, da det næsten helt sikkert ikke vil gå hurtigere.

Men overvej lige først, om det overhovedet er nødvendigt at bruge instanceof?

Når du siger alle dine objekter arver fra den samme klasse kunne du jo være, at du kunne have en generel (evt abstract) metode på din parent-klasse, som du så overskriver i de enkelte klasser.

Eks:

public void gørNoget(Dyr dyr) {
  if (dyr instanceof Hund)
    ((Hund) dyr).gø();
  else if (dyr instanceof Kat)
    ((Kat) dyr).miau();
}

Hvis du laver en metode giLyd() på Dyr-klassen, kan du i stedet have metoden

public void gørNoget(Dyr dyr) {
  dyr.giLyd();
}

giLyd()-metoden skal så overskrives for hund og for kat.

Hvis du gør ting, der minder om hinanden på de enkelte objekter, vil det være en pænere løsning
Avatar billede webster Nybegynder
27. juni 2002 - 15:58 #4
yup, men mine objekter skal kun indeholde information og der kan være temmeligt store variationer i hvad/hvor meget data de indeholder. Tak for svarene
Avatar billede webster Nybegynder
27. juni 2002 - 15:59 #5
(og også forskellige måder at dataene skal hentes ud fra, så et generelt interface duer ikke).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester