Bonjour à tous,
Je me tourne vers vous car je m'arrache quelque peu les cheveux
Tout d'abord, je dispose d'une interface iRequeteMoodle (public interface iRequeteMoodle), une classe abstraite AbstractRequeteBarChart (public abstract class AbstractRequeteBarChart implements iRequeteMoodle) et de deux classes RequeteBarChartEnFonctionModule (public class RequeteBarChartEnFonctionModule extends AbstractRequeteBarChart) et RequeteBarChartEnFonctionTemps (public class RequeteBarChartEnFonctionTemps extends AbstractRequeteBarChart).
Lorsque je demande à caster un objet AbstractRequeteBarChart dans un iRequeteMoodle en dur dans le code, pas de souci.
Code :
- package tests;
- import moodle.requete.RequeteBarChartEnFonctionModule;
- import moodle.requete.iRequeteMoodle;
- public class TestRequete {
- public static void main(String[] args) {
- iRequeteMoodle iRM = new RequeteBarChartEnFonctionModule();
- System.out.println(iRM);
- }
- }
|
Le code ci dessus marche nickel.
Par contre, quand je charge des classes contenues dans des fichiers jar de manière dynamique (en passant par des ((Class)tmpClass).newInstance ();, ou tmpClass est, par exemple, un RequeteBarChartEnFonctionModule) et que je les caste dans la foulée, j'ai un magnifique java.lang.ClassCastException: moodle.requete.RequeteBarChartEnFonctionModule cannot be cast to moodle.requete.iRequeteMoodle, ce qui est très gênant... Si j'essai de stocker mon instance dans un tableau d'objets, j'ai l'exception java.lang.ArrayStoreException qui est levée.
Comment peut-on caster une instance d'objet chargée dans un jar (j'ai essayé de mettre dans le jar toutes les classes utilisées, et j'ai toujours ce souci) ?
Merci d'avance