Решение для ClassCastException из-за проблемы ClassLoader

У меня есть два загрузчика классов, которые загружают один и тот же класс. Итак, очевидно, что они не могут переходить друг в друга. Но мне нужно получить доступ к объекту, созданному в другом ClassLoader.

У меня есть доступ к обоим загрузчикам классов. Как я могу использовать этот объект в другом классе? Мне не нужно приводить объект к текущему ClassLoader.

Но проблема в том, что тип возвращаемого объекта - Object . Итак, я должен отбросить этот объект, чтобы получить доступ к некоторым методам. Как я могу это сделать? Обычное приведение типов, подобное приведенному ниже, вызывает ClassCastException, о котором я уже знаю.

Mojo mojo = (Mojo) descriptor.getMojo();

дескриптор # getMojo () возвращает объект типа Mojo , но метод возвращает Object . Как это сделать?

Дайте мне знать, если вам понадобится дополнительная информация.

Я прочитал все теории о загрузке классов, но ни одна из них не нашла подходящего решения для этого.

6
задан Paolo Forgia 17 August 2017 в 07:55
поделиться