You can use something like TypeTools (a library that I authored) to resolve type arguments so long as the argument is captured in a type definition. For example:
interface DummyStringInterface extends DummyInterface<String> {}Class<?> t = TypeResolver.resolveRawArgument(DummyInterface.class, DummyStringInterface.class);assert t == String.class;