The current check is too strict, see also "10.2.1. The Event interface":
If the specified type contains a type variable, an IllegalArgumentException is thrown.