ServiceReference。根据service.ranking和service.id定义compareTo。但是,似乎service.ranking可以通过ServiceRegistration动态/异步更新。 setProperties。这意味着两个ServiceReference之间的compareTo可以因呼叫而异,这使得ServiceReference对于Comparable的所有典型用途都不可用。例如,如果排序在排序时异步更新,则Arrays.sort将会行为不当,如果service.ranking根本没有更新,则TreeSet < ServiceReference>将会损坏。为什么ServiceReference实现Comparable?
为什么ServiceReference实现Comparable?如果没有compareTo,或者至少没有实现Comparable似乎更好,以避免鼓励开发人员不恰当地使用API。
是否有任何数据结构建议用于维护排序的服务列表?特别是,针对cardinality =“0..n”引用的DS绑定方法使用。
您可以对列表进行排序,假定在排序正在进行的时间(希望很短)期间没有更新,并显示“当前”排名。每隔几秒重复一次,你就有一个“实时显示”。 – bdares 2012-02-09 06:54:43
我可以做到这一点,或装饰排序undecorate。这样做的时间复杂性并不好,它仍然让我回到了第一名。 – 2012-02-09 23:25:09