I make a example testcast using EventBusNoSubscriberEventTest.java (in EventBusTest)
public class EventBusNoSubscriberEventTest2 extends AbstractEventBusTest {
public void testNoSubscriberEvent() {
eventBus.register(this, NoSubscriberEvent.class);
eventBus.register(this, String.class);
eventBus.post("Foo");
String event = (String) lastEvent;
assertEquals("Foo", event);
eventBus.unregister(this, String.class);
eventBus.post("Bar");
assertEquals(NoSubscriberEvent.class, lastEvent.getClass());
NoSubscriberEvent noSub = (NoSubscriberEvent) lastEvent;
assertEquals("Bar", noSub.originalEvent);
}
public void onEvent(NoSubscriberEvent event) {
trackEvent(event);
}
public void onEvent(String message) {
trackEvent(message);
}
}
This testcast fail. (lastEvent type is not NoSubscriberEvent)
expected:<class de.greenrobot.event.NoSubscriberEvent> but was:<class java.lang.String>
private void postSingleEvent(Object event, boolean isMainThread) throws Error {
...
if (subscriptions != null) {
for (Subscription subscription : subscriptions) {
postToSubscription(subscription, event, isMainThread);
}
subscriptionFound = true;
}
...
}