Опитвам се да зареждам класове от jar файл и да създавам екземпляри от тези класове. Всички класове въвеждат IModule интерфейс.
Екземплярът е създаден успешно, но всеки път, когато се опитвам да хвърля обекта на IModule тип, получавам ClassCastException.
Това е моят код:
urlCl = new URLClassLoader(new URL[] { classFile.toURL()},System.class.getClassLoader());
Class projectClass = urlCl.loadClass("Project");
IModule projectObj = (IModule) projectClass.newInstance();
Моите проекти са в затъмнение, като IModule е отделен проект, който се добавя към пътя на класа както на "Project", така и на "Loader".
Всички предложения за това, което правя погрешно? Благодаря.
Отговори:
1 за отговор № 1В Java един клас или интерфейс се идентифицират от напълно квалифицираното име и от зареждащия го клас.
Вероятно се опитвате да хвърлите обекта в правилния интерфейс, но се зарежда от друг клас.
Погледни това:
Решение за ClassCastException поради проблем с ClassLoader