我有一个ServiceReference
实例,我希望获得它注册的类型的名称。
例如,该服务可能是WordService
,由WordServiceImpl
实施。我想检索"WordService"
。 ServiceReference.toString()
给了我一些接近我想要的东西("[org.example.WordService]"
)。
但是,我假设toString()
格式在运行时不是标准格式。另外,我不想检查实现类型的接口来手动查找接口,因为在多个接口的情况下我仍然需要随机选择正确的接口。
提前致谢!
答案 0 :(得分:3)
通过服务引用检索objectClass
属性的值:
String[] objectClass = (String[]) reference.getProperty("objectClass");
如您所见,这是String
的数组。在我的测试用例中,第一个也是唯一一个条目包含提供的服务接口(org.example.WordService
)。我假设如果实现通过多个接口提供服务,则会出现多个条目。
我假设这是标准的OSGi ......