public class GenericTypeExtractor extends Object
| Constructor and Description |
|---|
GenericTypeExtractor() |
| Modifier and Type | Method and Description |
|---|---|
static Class |
genericTypeOf(Class rootClass,
Class targetBaseClass,
Class targetBaseInterface)
Extract generic type of root class either from the target base class or from target base interface.
|
public static Class genericTypeOf(Class rootClass, Class targetBaseClass, Class targetBaseInterface)
1. Foo implements IFoo[Integer]: genericTypeOf(Foo.class, Object.class, IFoo.class) returns Integer
2. Foo extends BaseFoo[String]: genericTypeOf(Foo.class, BaseFoo.class, IFoo.class) returns String
3. Foo extends BaseFoo; BaseFoo implements IFoo[String]: genericTypeOf(Foo.class, BaseFoo.class, Object.class) returns String
Does not support nested generics, only supports single type parameter.
rootClass - - the root class that the search begins fromtargetBaseClass - - if one of the classes in the root class' hierarchy extends this base class
it will be used for generic type extractiontargetBaseInterface - - if one of the interfaces in the root class' hierarchy implements this interface
it will be used for generic type extraction