3

アプリケーションでGuava EventBusを使用して、Double1 人以上のデータ作成者からデータ コンシューマにデータ (たとえば s) を配布することを検討しています。

コンシューマー クラスでは、データ ハンドラーに@Subscribe. このサブスクリプションを条件付きにする方法はありますか? たとえば

@Subscribe {newValue > 0.0} public void valueUpdated(Double newValue)

メソッド内にチェックを追加することはできますが、サブスクライバーが関心のない値をディスパッチvalueUpdatedするのを止める方法はありますか?EventBus

この種の機能を提供する EventBus に似た製品はありますか?

4

1 に答える 1

1

Spring Expression Language (SpEL)が役立つ場合があります。

さらに、EventBus を確認したところ、タイプベースのディスパッチであり、条件ベースのディスパッチを適用する方法はないと思います。Expression Language の使用を主張する場合は、Louis コメントとしてサブスクライバーに入れることができます。しかし、Expression Language は速度よりも柔軟性を重視して設計されています。

于 2012-10-05T13:17:12.607 に答える