Avatar billede kernelx Juniormester
21. december 2007 - 13:41 Der er 6 kommentarer og
1 løsning

include med java

Hi,

jeg har følgende java-filer.
program.java
module1.java
module2.java

i program.java går det hele ud på, at der bliver kaldet et modul.
man ved i forvejen ikke vilket modul, men der er i enden en variable "module", som indeholer et nummer.

hvis "module" f.eks. indeholder et to-tal (2), så skal program.java kalde methoden "do()" i module2.java.

...

Mit problem er, at jeg ikke ved, hvoran jeg for løset sådan et problem.

det skal senere hen være muligt at tilføje filer som module3.class, etc.

hvordan løser man sådan et problem i java?


med venlig hilsen
KernelX
Avatar billede di8leva Nybegynder
21. december 2007 - 14:02 #1
Du vil nok bruge Class.forName()

Her kan du hente namnet på den klasse du vil ha, og så kalde den metode du vil kalde på det objekt du finder

Class.forName("module" + identifier)

kig på:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html#forName(java.lang.String,%20boolean,%20java.lang.ClassLoader)
Avatar billede di8leva Nybegynder
21. december 2007 - 14:04 #2
Det kaldes reflection, og du kan finde mer her:
http://java.sun.com/developer/technicalArticles/ALT/Reflection/index.html
Avatar billede kernelx Juniormester
21. december 2007 - 14:13 #3
mange tak!

husk at skrive et eller andet som svar.
Avatar billede di8leva Nybegynder
21. december 2007 - 14:19 #4
svar :)
Avatar billede kernelx Juniormester
21. december 2007 - 14:24 #5
Object loadObj = Class.forName("module1");
loadObj.run(); // virker ikke, pga. at Object ikke indeholder run().

hvordan kan jeg få loadObj.run(); til at virke?
Avatar billede arne_v Ekspert
21. december 2007 - 15:04 #6
Lad alle de klasser du loader dynamisk implementere et bestemt interface
og cast til dette.
Avatar billede kernelx Juniormester
24. december 2007 - 09:00 #7
Hi arne_v,

jeg er desværre for dum til at få det til at virke :-(
http://www.eksperten.dk/spm/811665
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