Я намагаюся завантажити класи з файлу 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