0
在JavaEE/CDI世界中,我知道如何獲得實現給定接口的類的實例列表:使用Instance<MyInterface>
加上reflections庫。在OSGi/iPOJO世界中,如何獲得實現接口的類的實例列表?
但是在OSGI/iPOJO世界,該怎麼做呢?
我知道我通過使用@Requires MyInterface anInstance
得到一個實例。但是,我怎樣才能通過程序訪問所有這些類?
在JavaEE/CDI世界中,我知道如何獲得實現給定接口的類的實例列表:使用Instance<MyInterface>
加上reflections庫。在OSGi/iPOJO世界中,如何獲得實現接口的類的實例列表?
但是在OSGI/iPOJO世界,該怎麼做呢?
我知道我通過使用@Requires MyInterface anInstance
得到一個實例。但是,我怎樣才能通過程序訪問所有這些類?
只需使用BundleContext
:
@Context BundleContext context;
public List<ServiceReference> getInstancesImplementingX() {
return context.getServiceReferences(X.class);
}
Unfortnuatly,這需要我所有的加載類是服務,這是我沒有預料...... – Riduidel
如何,有一種方法,而無需加載類:上下文.getServiceReferences(「name.of.my.class」,null); 它返回一個數組,如果沒有服務匹配,則返回null。 – Clement