Class Types
Most of these utilities are designed to go along with GeAnTyRef.
- Since:
- 4.0.0
- See Also:
-
for other tools to work with types
for methods to construct types
-
Method Summary
Modifier and TypeMethodDescriptionallDeclaredMethods
(Class<?> clazz) Get all declared methods in the provided class and its superclasses and superinterfaces, up to but not includingObject
.allSuperTypes
(Type type) Get all supertypes of this object with type parameters.Get all supertypes and interfaces of the provided type.static Type
Box the input type if it is an unboxed primitiveClass
.static AnnotatedElement
combinedAnnotations
(AnnotatedElement... elements) Get an element containing the annotations of all the provided elements.static @Nullable Object
defaultValue
(Class<?> type) Get the default value for a type.static boolean
Get if the provided type is an array type.static boolean
isBoxedPrimitive
(Type input) Get whether or not the provided input type is a boxed primitive type.static <T> io.leangen.geantyref.TypeToken<List<T>>
Given an element type, create a new list type.static <T> io.leangen.geantyref.TypeToken<List<T>>
makeListType
(io.leangen.geantyref.TypeToken<T> elementType) Given an element type, create a new list type.static <K,
V> io.leangen.geantyref.TypeToken<Map<K, V>> makeMap
(io.leangen.geantyref.TypeToken<K> key, io.leangen.geantyref.TypeToken<V> value) Given an element type, create a newMap
type.static <K,
V> io.leangen.geantyref.TypeToken<Map<K, V>> Given an element type, create a newMap
type.static <K,
V> io.leangen.geantyref.TypeToken<Map<K, V>> Given an element type, create a newMap
type.static <K,
V> io.leangen.geantyref.TypeToken<Map<K, V>> Given an element type, create a newMap
type.static Type
requireCompleteParameters
(Type input) Throw an exception if the passed type is raw (missing parameters)..static Type
Unbox the input type if it is a boxed primitive.
-
Method Details
-
isArray
Get if the provided type is an array type.Being an array type means that the provided type has a component type.
- Parameters:
input
- input type- Returns:
- whether the type is an array
- Since:
- 4.0.0
-
isBoxedPrimitive
Get whether or not the provided input type is a boxed primitive type.This check will not match unboxed primitives.
- Parameters:
input
- type to check- Returns:
- if type is a boxed primitive
- Since:
- 4.0.0
-
unbox
Unbox the input type if it is a boxed primitive.- Parameters:
input
- input type- Returns:
- the unboxed version of the input type, or the input type if it was already non-primitive
- Since:
- 4.0.0
-
defaultValue
Get the default value for a type.For all reference types, this is
null
. For all primitive types, this is equivalent to their defineddefault
value.- Parameters:
type
- the type to get a default value for- Returns:
- the default value, or
null
for reference types - Since:
- 4.1.0
-
box
Box the input type if it is an unboxed primitiveClass
.- Parameters:
input
- input type- Returns:
- the unboxed version of the input type, or the input type if it was already a primitive, or had no primitive equivalent
- Since:
- 4.0.0
-
makeList
Given an element type, create a new list type.The provided element type must not be a raw type
This has an outcome similar to constructing a
TypeToken
directly, but avoids generating an extra anonymous class.- Type Parameters:
T
- type of element- Parameters:
elementType
- class representing the element type- Returns:
- new list type token
- Since:
- 4.2.0
-
makeListType
public static <T> io.leangen.geantyref.TypeToken<List<T>> makeListType(io.leangen.geantyref.TypeToken<T> elementType) Given an element type, create a new list type.This has an outcome similar to constructing a
TypeToken
directly, but avoids generating an extra anonymous class.- Type Parameters:
T
- type of element- Parameters:
elementType
- type token representing the element type- Returns:
- new list type token
- Since:
- 4.0.0
-
makeMap
Given an element type, create a newMap
type.The provided key and value types must not be a raw type
This has an outcome similar to constructing a
TypeToken
directly, but avoids generating an extra anonymous class.- Type Parameters:
K
- type of keyV
- type of value- Parameters:
key
- type of the map's keyvalue
- type of the map's value- Returns:
- new
Map
type token - Since:
- 4.2.0
-
makeMap
public static <K,V> io.leangen.geantyref.TypeToken<Map<K,V>> makeMap(io.leangen.geantyref.TypeToken<K> key, io.leangen.geantyref.TypeToken<V> value) Given an element type, create a newMap
type.This has an outcome similar to constructing a
TypeToken
directly, but avoids generating an extra anonymous class.- Type Parameters:
K
- type of keyV
- type of value- Parameters:
key
- type of the map's keyvalue
- type of the map's value- Returns:
- new
Map
type token - Since:
- 4.2.0
-
makeMap
public static <K,V> io.leangen.geantyref.TypeToken<Map<K,V>> makeMap(Class<K> key, io.leangen.geantyref.TypeToken<V> value) Given an element type, create a newMap
type.This has an outcome similar to constructing a
TypeToken
directly, but avoids generating an extra anonymous class.- Type Parameters:
K
- type of keyV
- type of value- Parameters:
key
- type of the map's keyvalue
- type of the map's value- Returns:
- new
Map
type token - Since:
- 4.2.0
-
makeMap
public static <K,V> io.leangen.geantyref.TypeToken<Map<K,V>> makeMap(io.leangen.geantyref.TypeToken<K> key, Class<V> value) Given an element type, create a newMap
type.This has an outcome similar to constructing a
TypeToken
directly, but avoids generating an extra anonymous class.- Type Parameters:
K
- type of keyV
- type of value- Parameters:
key
- type of the map's keyvalue
- type of the map's value- Returns:
- new
Map
type token - Since:
- 4.2.0
-
combinedAnnotations
Get an element containing the annotations of all the provided elements.If multiple elements have the same annotation, only the first one with an applicable type is returned.
- Parameters:
elements
- elements to combine- Returns:
- new union element
- Since:
- 4.0.0
-
requireCompleteParameters
Throw an exception if the passed type is raw (missing parameters)..- Parameters:
input
- input type- Returns:
- type, passed through
- Since:
- 4.0.0
-
allSuperTypes
Get all supertypes of this object with type parameters.The iteration order is undefined. The returned stream will include the base type plus superclasses, but not superinterfaces.
- Parameters:
type
- base type- Returns:
- stream of supertypes
- Since:
- 4.0.0
-
allSuperTypesAndInterfaces
Get all supertypes and interfaces of the provided type.The iteration order is undefined. The returned stream will include the base type plus superclasses and superinterfaces.
- Parameters:
type
- base type- Returns:
- stream of supertypes
- Since:
- 4.0.0
-
allDeclaredMethods
Get all declared methods in the provided class and its superclasses and superinterfaces, up to but not includingObject
.Overridden methods will be skipped when encountered in parent types.
- Parameters:
clazz
- the class to visit- Returns:
- a list of methods that may not be modifiable
- Since:
- 4.2.0
-