获取 ServiceReference 的实现
Get Implementation of ServiceReference
我有一个 ServiceReference
,我想检查该实现是否有注释。所以我需要得到实现 class.
我想出了如何获取服务实现的接口:
ServiceReference<T> reference = //
String[] interfaces = (String[]) reference.getProperty(org.osgi.framework.Constants.OBJECTCLASS);
但即使使用 JavaDoc,我也无法弄清楚如何实现(显然没有从上下文中获取服务,因为这可能是一个重量级操作,我只需要 class ).
如何从 ServiceReference
中获取实现?
您必须使用 service = context.getService(reference)
获取服务。这不是一个重量级的操作。
您也可以从使用 ServiceTracker 中获益。
除此之外,我很好奇你想要达到什么目的。。也许有更好的方法。
所以你想在不获取服务对象的情况下获取服务对象?我认为你在要求一些不可能的事情。您将需要获取服务对象来检查它的注释实现 class。没有别的办法。确保在完成后取消获取服务对象。
我有一个 ServiceReference
,我想检查该实现是否有注释。所以我需要得到实现 class.
我想出了如何获取服务实现的接口:
ServiceReference<T> reference = //
String[] interfaces = (String[]) reference.getProperty(org.osgi.framework.Constants.OBJECTCLASS);
但即使使用 JavaDoc,我也无法弄清楚如何实现(显然没有从上下文中获取服务,因为这可能是一个重量级操作,我只需要 class ).
如何从 ServiceReference
中获取实现?
您必须使用 service = context.getService(reference)
获取服务。这不是一个重量级的操作。
您也可以从使用 ServiceTracker 中获益。 除此之外,我很好奇你想要达到什么目的。。也许有更好的方法。
所以你想在不获取服务对象的情况下获取服务对象?我认为你在要求一些不可能的事情。您将需要获取服务对象来检查它的注释实现 class。没有别的办法。确保在完成后取消获取服务对象。