Вызывайте методы API таким образом, чтобы избежать изменений между версиями библиотеки в JAVA - PullRequest
0 голосов
/ 12 марта 2012

Мне нужно вызвать java-метод в стороннем JAR-файле, совместимый с двумя различными версиями API.

Разница минимальна, поскольку в новой версии есть один дополнительный параметр, но я должен убедиться, что мое приложение работает и компилируется с обеими версиями библиотеки.

Лучший вариант, с которым я пришел, - это использовать отражение, чтобы проверить, какая версия различных методов доступна, а затем вызвать правильную во время выполнения, но бродил, если есть более элегантный способ, может быть, использовать какой-то третий партийная библиотека.

Спасибо

1 Ответ

1 голос
/ 12 марта 2012

Если вы знаете , с какой версией сторонней библиотеки ваш код будет ссылаться заранее, вы можете иметь небольшую библиотеку-обертку отдельно для обеспечения общего интерфейса для обеих версий API.

Если у вас нет этой способности, возможно, стоит подумать об отражении.В зависимости от того, как настроен ваш проект и его система сборки, вы можете даже использовать пару классов адаптеров, которые будут загружены во время выполнения после обнаружения версии API сторонней библиотеки.Таким образом, вы не пострадаете от влияния на производительность, связанного с вызовами рефлексивных методов.

Тем не менее, вы, возможно, захотите взглянуть на решение таких проблем с зависимостями, используя подходящую среду развертывания, такую ​​как OSGi .

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