我正在尋找類似於.NET託管擴展性框架(http://mef.codeplex.com/)的Java功能。對於那些誰也不知道MEF,我想是這樣的:動態加載Java接口的實現
給定一個接口
public interface IFoo {
...
}
通過查看加載罐子動態加載的接口的實現。
IFoo foo = loadClassThatImplementsInterface<IFoo>();
問題是程序員在代碼時不知道實現的名稱,但在代碼中提供了擴展點。
這在Java中根本不可能嗎?我發現一些谷歌點擊說明這是不可能的,但這似乎有點......呃?
當編譯時知道實現的完全限定名稱時,有很多使用類加載器的示例。這不是我想要的。
對於這個項目,我不想使用DI框架,所以我會考慮ServiceLoader,thx – 2010-10-18 08:53:20
好吧,不要忘記接受答案,如果它是你正在尋找;-) thx – 2010-10-18 08:54:19
找到這個在知道要尋找什麼之後: http://java.dzone.com/news/simple-dependency-injection-wi – 2010-10-18 09:02:30