Мне нужна функциональность в Java, аналогичная .NET Managed Extensibility Framework (http://mef.codeplex.com/). Для тех, кто не знает MEF, я хочу что-то вроде этого:
Учитывая интерфейс
public interface IFoo {
...
}
Динамически загружать реализацию интерфейса, просматривая загруженные файлы jar.
IFoo foo = loadClassThatImplementsInterface<IFoo>();
Дело в том, что программист не знает имя реализации во время кода, но предоставляет в коде точку расширения.
Разве это не возможно в Java вообще? Я нашел несколько обращений Google, утверждающих, что это невозможно, но это кажется немного ... а?
Существует множество примеров использования загрузчика классов, когда полное имя реализации известно во время компиляции. Это не то, что я хочу.