Этого можно добиться с помощью интерфейса и двух классов:
interface API {
void Method();
}
class APIX implements API {
void Method() {
someInstance.Method1();
}
}
class APIY implements API {
void Method() {
anotherInstance.Method2();
}
}
Затем, в зависимости от текущей версии, вы создаете экземпляр либо APIX , либо APIY * 1007.*:
API api;
if (isVersionX)
api = new APIX();
else
api = new APIY();
api.Method();
Этот код скомпилирован с использованием более нового API, содержащего оба метода.Поскольку загрузка классов осуществляется только по запросу, класс, использующий более новый метод, не загружается, когда доступен только старый API, и у вас нет никаких конфликтов во время выполнения.