1

我有一个ServiceReference实例,我想获取它注册为的类型的名称。

例如,服务可能是由WordService实现的WordServiceImpl。我想找回"WordService". ServiceReference.toString()给了我一些接近我想要的东西("[org.example.WordService]")。

但是,我假设toString()格式在运行时不是标准的。另外,我宁愿不检查实现类型的接口来手动查找接口,因为在多个接口的情况下我仍然必须随机选择正确的接口。

提前致谢!

4

1 回答 1

3

愚蠢,但实际上我在发布后几乎立即就想通了。

objectClass通过服务引用检索属性的值:

String[] objectClass = (String[]) reference.getProperty("objectClass");

如您所见,这是一个Strings 数组。在我的测试用例中,第一个也是唯一的条目包含提供的服务接口 ( org.example.WordService)。我假设如果实现通过多个接口提供服务,则会出现多个条目。

我假设这是标准的 OSGi ......

于 2013-10-01T16:51:12.423 回答