Могу ли я взять иностранный класс в Java, который соответствует одному из моих пользовательских
интерфейсы и "привести" его к этому интерфейсу?
Пример:
public class YouCanNotChangeMe_IAmNotYours{
public void doSomethingSpecial();
}
public interface MyInterface{
void doSomethingSpecial();
}
Могу ли я использовать этот иностранный класс в местах, где ожидается мой интерфейс?
Зачем мне это вообще нужно?
Я хочу динамически перезагружать новые версии JAR во время выполнения,
как я уже упоминал здесь .
Теперь сервер знает все интерфейсы (зная прежнюю версию
JAR во время компиляции). Проблема в том, что после загрузки классов из
более новые версии этого JAR во время выполнения, эти «новые» классы действуют как
если они не «знают» известный во время компиляции интерфейс.
Пример: старый класс с именем HelloClass (известный во время компиляции) реализует
интерфейс HelloInterface , но недавно загруженный класс HelloClass
не не реализует тот же интерфейс!