Avatar billede jonas_h Nybegynder
15. juni 2007 - 01:32 Der er 2 kommentarer og
1 løsning

Generic klasse og brug af instanceof

Har lige et spørgsmål omkring brug af instanceof i en generic klasse. Hvis man har klassen:

class test<T extends AnotherObj>{
  public test(AnotherObj ao){
    boolean b = ao instanceof T;
  }

Hvorfor må man ikke gøre ovenstående? Har læst lidt om, at det er noget med, at den laver noget med at slette ved runtime... Men er der overhovedewt en måde, hvor ovenstående princip er muligt?

Det jeg gerne vil er, at have et objekt, som på en eller anden måde kan lave mange forskellige instanceof sammenligninger alt efter hvordan objektet er oprettet...

Håber I kan hjælpe :)
Avatar billede arne_v Ekspert
15. juni 2007 - 02:25 #1
Den metode ville blive compilet til:

boolean b = ao instanceof AnotherObj;

så derfor vil Java gerne at du bruger det eksplicit.

Workaround ?

Hvad med:

boolean b = ao.getClass().getName().equals(this.getClass().getName());
Avatar billede jonas_h Nybegynder
15. juni 2007 - 08:52 #2
For at det ikke skal være løgn, er det cirka også denne metode jeg selv er kommet frem til... Men bare giv et svar, og så får du point for svaret.
Avatar billede arne_v Ekspert
15. juni 2007 - 12:50 #3
svar
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