Gå til innhold

Hvordan finne tilhørende klasseobjekt til virtuell metode?


Anbefalte innlegg

Vet ikke om dette er mulig i Java (har ihvertfall ikke funnet noe lovende på nett), men går det an å gitt en metode finne hvilken klasse metoden ble definert i?

 

F.eks. i koden nedenfor har klassen C både arvet foo() og foobar() som virtuelle metoder. Poenget er altså å finne hvor f.eks. foo() ble definert. Om foo() også hadde vært redefinert i B så er det altså klassen B jeg er ute etter.

class A {
  void foo() { ... }
}
class B extends A {
  void foobar() { ... }
}
class C extends B {
  Class<?> getMethodClass() {
    return /* class of foo() */;
  }
}

På forhånd takk for hjelp!

Lenke til kommentar
Videoannonse
Annonse

Hvis dette skulle bety noe for deg er koden horribelt strukturert. Det er ikke noe som bør skje (eller være interessant) runtime.

 

Om det er for å faktisk lese hvilken implementasjon som kjører i et tilfelle: følg hireariket oppover, enten manuelt, med grep eller en IDE.

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...