ServiceReference。 compareToは、service.rankingとservice.idの観点から定義されています。しかし、service.rankingはServiceRegistrationで動的/非同期に更新できるようです。 setProperties。これは、2つのServiceReference間のcompareToがコールごとに異なる可能性があることを意味します。これは、ServiceReferenceをComparableの一般的な使用すべてで使用できなくします。たとえば、並べ替え中にランク付けが非同期に更新されるとArrays.sortが誤動作し、service.rankingがまったく更新されていればTreeSet < ServiceReference>が破損します。なぜServiceReferenceはComparableを実装していますか?
なぜServiceReferenceはComparableを実装していますか? compareToをまったく持っていないほうが良いでしょう。あるいは、少なくともComparableを実装していないと、開発者がAPIを不適切に使用するのを避けることができません。
サービスのソートされたリストを維持するためのデータ構造の提案はありますか?特に、カーディナリティ= "0..n"参照のためのDSバインドメソッドでの使用のために。
リストを並べ替えることができます。並べ替えが進行している間に更新されないと仮定し、現在のランキングを表示することができます。数秒ごとに繰り返し、あなたは「ライブディスプレイ」を持っています。 – bdares
私はそれを行うことができますか、またはデコレートソートデコレート。それを行う時間の複雑さはあまり良くありません。それでも私は#1に戻ります。 –