Суперкласс Java-класса в отдельном jar-файле, отображаемый как Object - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть класс с именем Passthru, который расширяет класс с именем Component, который содержится в файле JAR.Во время выполнения я хочу загрузить Passthru (используя URLClassLoader с одним или несколькими jar-файлами, а также, необязательно, с локальным каталогом), а затем проверить суперкласс на наличие нескольких возможностей, одним из которых является Component.Это прекрасно работает, если и Passthru, и Component находятся в одном и том же файле jar, даже если разные пакеты, но если Passthru находится в локальном каталоге (с Component в файле jar, как и раньше), выполняя getSuperClass для Passthru.возвращает объект.Я знаю, что Object находится в родительском дереве Passthru, но в этом случае я не могу найти direct родительского Passthru.Я полагаю, я мог бы пойти к источнику Passthru и отсканировать, чтобы найти суперкласс, но должен быть более простой способ ...?!

Я также отметил, что в обоих случаях Passthru загружается с моим URLClassLoader, но когда Passthru находится в локальном каталоге, загрузчик его родителя отображается как «первичный» загрузчик (ноль) - не знаю, если этоактуально ...

Решено !!Это был своего рода тупой вопрос: оказалось, что исходный код в каталоге был на обратном уровне и не соответствовал коду в файле jar.Кроме того, я не добавил код каталога в качестве проекта Eclipse, поэтому, очевидно, Eclipse скомпилировал этот код, но не дал никаких указаний на ошибки, поэтому я не видел ошибок компиляции "за кулисами".Поэтому, когда я работал исключительно в jar-файле, все работало, но когда я заходил в каталог, ошибки компиляции не позволяли классам выбирать класс Component.Спасибо людям, которые ответили на мой вопрос - извините, если я потратил впустую ваше время!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...