public class BaseEvent implements Serializable {
}
public interface ChangedListener <T extends BaseEvent>{
@Subscribe
void doAction(T event);
}
public class EatAppleChangeEvent extends BaseEvent{
public static EatAppleChangeEvent create(){
EatAppleChangeEvent event=new EatAppleChangeEvent();
return event;
}
}
public enum EventBusHelper {
A(new EventBus("heihie"))
;
EventBus eventBus;
EventBusHelper(EventBus eventBus){
this.eventBus=eventBus;
}
public void regiester(ChangedListener listener){
eventBus.register(listener);
}
public void post(BaseEvent event){
eventBus.post(event);
}
}
public class EventBusTest {
public static void main(String[] args){
EventBusHelper.A.post(EatAppleChangeEvent.create());
}
}
public class HeiheiEatAppleEventListener implements ChangedListener<EatAppleChangeEvent>,Initialization{
void doAction(EatAppleChangeEvent event){
System.out.println(event);
}
public void afterProperties(){
EventBusHelper.A.register(this);
}
}