Når I har loadet en klasse dynamisk skal I benytte Reflection API'et til
at lave en instans før I kan kalde metoden a'la:
Class clazz = loader.loadClass(a);
MyInterface f = clazz.newInstance();
System.out.println(f.getMinT());
Måske er det I mangler bare Class.forName() som returnerer et Class
objekt der representerer den klasse hvis fuldt kvalificerede navn man
gav med som argument?
Hvis I virkeligt vil bruge jeres egen classloaded kan denne også
registreres under den aktuelle classloader, således at det bliver jeres
classloader der står for at loade *alle* klasser.
-dennis
Kim Lethan wrote:
> Kære gruppe
>
> Vi søger en klasse som i et system kan bruges til at loade andre klasser
> med, ved hjælp af et argument (string) tilsvarende navnet på den klasse
> man ønsker loaded. Samtidigt skal metoderne i den loadede klasse
> overholde de interfaces vi har oprettet og være tilgængelige for systemet.
>
> Vi har eksperimenteret med kode fra nettet, men uden held. Vi har blot
> kunne loade klasser uden at være i stand til at addressere metoderne i
> dem. Se koden...
>
> //Uddrag af Main programmet - Compileren fejler ved linie 3 -
> f.getMinT() kan ikke findes i Class. Vi har prøvet at skrive vores
> Interface navn i stedet for Class men det fejer også.
>
> Simple1_2ClassLoader loader = new Simple1_2ClassLoader();
> Class f = loader.loadClass(a);
> System.out.println(f.getMinT());
>
> //Simple1_2ClassLoader.java er hentet fra:
>
>
http://www.javaworld.com/jw-03-2000/classload/Simple1_2ClassLoader.java
>
>
> PF. tak
>
>