1

ServiceReference登録されている型の名前を取得したいインスタンスがあります。

たとえば、サービスはWordServiceによって実装される である場合がありますWordServiceImpl。を取得したいと思います"WordService"ServiceReference.toString()私が欲しいものに近いものをくれます ( "[org.example.WordService]")。

toString()ただし、この形式はランタイム全体で標準ではないと想定しています。また、インターフェイスを手動で探すために実装型のインターフェイスを検査したくありません。複数のインターフェイスがある場合は、適切なものをランダムに選択する必要があるからです。

前もって感謝します!

4

1 に答える 1

3

ばかげていますが、私は実際に投稿した直後にそれを理解しました.

objectClassサービス参照を通じてプロパティの値を取得します。

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

ご覧のとおり、これは の配列ですString。私のテスト ケースでは、最初で唯一のエントリに提供されたサービス インターフェイス ( org.example.WordService) が含まれていました。実装が複数のインターフェイスを介してサービスを提供する場合、複数のエントリが表示されると想定しています。

これは標準のOSGiだと思います...

于 2013-10-01T16:51:12.423 に答える