Я динамически загружаю внешний класс из моего приложения eclipse rcp с помощью urlClassLoader. Метод invoke () возвращает объект самоопределенного типа.
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
URLClassLoader cl = URLClassLoader.newInstance( url);
Thread.currentThread().setContextClassLoader(cl);
String className ="myClass";
Class<?> c = cl.loadClass(className);
Object inst =c.newInstance();
Method run =c.getMethod("run", new Class[0]);
Object rdsObject =run.invoke(inst, new Object[]{});
Thread.currentThread().setContextClassLoader( oldClassLoader );
rts.data.RTSDataSet rds =(rts.data.RTSDataSet) rdsObject;
Когда я пытаюсь привести этот объект, я получаю исключение java.lang.ClassCastException: rts.data.RTSDataSet не может быть приведен к rts.data.RTSDataSet Мне кажется, что причина в том, что у меня здесь другой ClassLoader. Мой вопрос: как правильно установить ClassLoader?
Спасибо за помощь!