我有ServiceReference
,我想检查实现是否有注释。所以我需要获得实现类。
我想出了如何获得服务实现的接口:
ServiceReference<T> reference = //
String[] interfaces = (String[]) reference.getProperty(org.osgi.framework.Constants.OBJECTCLASS);
但即使使用JavaDoc,我也无法弄清楚如何获得实现(显然没有从上下文获取服务,因为这可能是一个重量级的操作,我只需要类)。
如何从ServiceReference
获得实施?
答案 0 :(得分:1)
所以你想获得服务对象而不获取服务对象?我想你要求的是不可能的东西。您需要获取服务对象以内省它的注释实现类。没有其他办法。确保在完成后取消服务对象。
答案 1 :(得分:0)
您必须使用service = context.getService(reference)
获取服务。这不是一个重量级的操作。
您也可以从使用ServiceTracker中受益。 除此之外,我很好奇你想要实现的目标......也许还有更好的方法。