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