1
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
public class Test {
public static class Processing { }
public static class ProcessingResults { }
public static class ProcessingFinished { }
public static EventBus bus = new EventBus();
@Subscribe
public void receiveStartRequest(Processing evt) {
System.out.println("Got processing request - starting processing");
}
@Subscribe
public void processingStarted(Processing evt) {
System.out.println("Processing has started");
}
@Subscribe
public void resultsReceived(ProcessingResults evt) {
System.out.println("got results");
}
@Subscribe
public void processingComplete(ProcessingFinished evt) {
System.out.println("Processing has completed");
}
public static void main(String[] args) {
Test t = new Test();
bus.register(t);
bus.post(new Processing());
}
}
したがって、上記の例では、同じタイプの処理を受け入れる2人の加入者がいることがわかります。今、post()の時点で、すべての関数が呼び出されますか? 2つの関数receiveStartRequestとprocessingStartedが呼び出されると、それらの関数が呼び出されます。Guava EventBus複数の加入者同じtpe
私がそれをしなければ私の質問はどうなるでしょうか?両方の加入者が呼び出されますか? – hatellla
@hatellla実際に私はコメントとして書き始めましたが、途中で答えが良くなると思い、その部分を含めるのを忘れました。私は今私の答えでその質問に答えました。もっと慎重ではないため申し訳ありません:) –
ありがとう@Oliver – hatellla