Skip to content

Latest commit

 

History

History
46 lines (36 loc) · 2.16 KB

README.asciidoc

File metadata and controls

46 lines (36 loc) · 2.16 KB

Generic Types

Maven Central Open Hub statistics Build Status Coverity Scan Result Gitter

This Java library provides a factory to create generic java.lang.reflect.Type variations, such as Map<String, Object>. Use it as follows:

final Type genericMap = GenericTypes.generic(Map.class, String.class, Object.class);
final Type genericList = GenericTypes.generic(List.class, String.class);

Super- and subtypes such as List<? super Point> or List<? extends Number> can be created in the following way:

final Type list = GenericTypes.generic(List.class, GenericTypes.supertype(Point.class));
final Type list = GenericTypes.generic(List.class, GenericTypes.subtype(Number.class));

Use static imports to shorten the above calls to:

final Type list = generic(List.class, supertype(Point.class));
final Type list = generic(List.class, subtype(Number.class));

and then go crazy with this:

final Type type = generic(List.class, generic(Map.class, subtype(Number.class), supertype(String.class)));

which represents a List<Map<? extends Number, ? super String>>.