@SuppressWarnings("unchecked") public <E extends Event> E getNextEvent(Class<E> eventClass) { checkInputEmpty(); log.info("Asserting output event equals {}", eventClass); Event next = eventQueue.removeFirst(); assertTrue( eventClass.isInstance(next), "Event " + next.getClass() + " doesn't match " + eventClass); return (E) next; }