SmartDataStoreEventListener implements DataStoreEventListener<E> { public Class<E> getEventType() { return eventType; } SmartDataStoreEventListener(DataStoreEventListener<E> delegate); @Override void onEvent(E event); Class<E> getEventType(); DataStoreEventListener<E> getDelegate();  }
@Test public void testEventTypeRecognition() { final SmartDataStoreEventListener<DataStoreEvent> listener = new SmartDataStoreEventListener<>( new AllCatchingEventListener()); assertThat(listener.getEventType(), is(notNullValue())); assertThat(listener.getEventType(), is(equalTo(DataStoreEvent.class))); }