OSGi: загрузка суперкласса с версией, отличной от дочерней, статически привязана к - PullRequest
0 голосов
/ 25 апреля 2011

У меня есть ситуация: класс B в своем собственном Bundle (скажем, Bundle-B-1.0.0). Класс A находится в Bundle-A.1.0.0), а отношения между A и B:

public class B extends A {
    public B(){
      super();
    }
}

Я пытаюсь загрузить класс B в другой ClassLoader C, который имеет видимость класса A ', то же самое, что и класс A, но в другой (более высокой) версии Bundle-A.2.0.0.

Когда я создаю экземпляр класса B (из того же Bundle-B.1.0.0) с использованием ClassLoader C и с помощью Reflection, как я могу убедиться, что он ссылается / использует класс A 'из Bundle-A.2.0.0 ( более высокий версионный пакет), когда он вызывает super ()?

Требование, которое я пытаюсь выполнить, заключается в том, что класс B может / должен иметь возможность ссылаться на A или A 'по требованию во время его собственной реализации. Возможно ли это?

1 Ответ

1 голос
/ 25 апреля 2011

Нет, это невозможно.Пакет B будет подключен для импорта из A или A ', но вы не можете динамически переключаться между ними.

...