Problème lors de l'instantiation d'une classe : java.lang.ClassCastException
Bonjour à tous,
J'essaie de créer une instance d'une classe qui n'est pas dans le classpath, chargée avec URLClassLoader, et d'utiliser ses méthodes.
Mais j'ai une erreur que je n'arrive pas à corriger. J'ai essayé de chercher sur internet mais sans résultat ! C'est un domaine qui est encore nouveau pour moi, alors désolé si l'erreur est évidente :roll:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public static void main(String[] args) {
try {
URL[] urls = new URL[1];
urls[0] = new File("D:\\JavaWorspace\\test").toURI().toURL();
URLClassLoader classloader = new URLClassLoader(urls);
Class c=classloader.loadClass("test");
truc t=(truc) c.newInstance();
System.out.println(t.getNumber());
} catch (Exception e) {
e.printStackTrace();
}
} |
j'ai ma classe test :
Code:
1 2 3 4 5
| public class test implements truc{
public int getNumber(){
return 2;
}
} |
et l'interface truc:
Code:
1 2 3
| public interface truc {
public int getNumber();
} |
et j'obtiens toujours comme erreur (la ligne 15 c'est la 8ème sur le code en haut)
Code:
1 2
| java.lang.ClassCastException: test cannot be cast to truc
at Main.main(Main.java:15) |
j'ai cherché à quoi cela correspondait, mais je n'ai pas trouvé encore. Vous pouvez m'éclairer?
merci !!