As for the possibility of doing this in JVM, Guava EventBus is already doing it (i.e. it has EventBus.post(Object) for firing event and the subscriber declares the concerete type) so it should be possible in Weld/CDI as well.
As for the possibility of doing this in JVM, Guava EventBus is already doing it (i.e. it has EventBus.post(Object) for firing event and the subscriber declares the concerete type) so it should be possible in Weld/CDI as well.