Skip to content

Base type generics

Resolve generics from implemented interface or extended class.

Common case for various extension mechanisms is to know actual generics of some extension interface for actual extension class:

interface Extension<V> {}

class ListExtension implements Extension<List<String>> {}
GenericsResolver.resolve(ListExtension.class)
        .type(Extension.class)
        .genericType("V") == List<String> // (ParameterizedType)