Avatar billede kernelx Juniormester
24. december 2007 - 08:58 Der er 2 kommentarer og
1 løsning

forName - kalde en methode

Hi,

jeg har flere modul-filer (modul1.class, module2.class, etc.).
Nu skal mit java-program finde ud af, hvilket af disse moduler der skal loades in i programmet.

Jeg har følgende interface:
..............................
package test.modules;

public interface RunAble {
  boolean run ();
}
...............................

Alle moduler implemeterer RunAble.

Hvis programmet f.eks. har fundet ud af, at den skal udføre methoden run() fra modul5, så vil den få fat i klassen med forName.

try {
  Class module = Class.forName(this.getModuleToLoad());
  /*
    module.run(); <-- virker ikke
  */
} catch (Exception e) {
  // module not found
}
......

Er der nogen, som har lyst til at give mig et lille eksempel på,
hvordan jeg kan få udføret methoden "run()"?

med venlig hilsen
KernelX
Avatar billede kernelx Juniormester
24. december 2007 - 09:13 #1
ah, jeg fik den
Avatar billede kernelx Juniormester
24. december 2007 - 09:14 #2
try {
  Class module = Class.forName(this.getModuleToLoad());
  RunAble runAbleModule = (RunAble) runAbleModule.newInstance();
  runAbleModule.run();
} catch (Exception e) {
  // module not found
}
Avatar billede kernelx Juniormester
14. januar 2008 - 18:23 #3
try {
  Class module = Class.forName(this.getModuleToLoad());
  RunAble runAbleModule = (RunAble) module.newInstance();
  runAbleModule.run();
} catch (Exception e) {
  // module not found
}
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