public class ParameterizedTypes
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static java.util.stream.Stream<java.util.Map.Entry<java.lang.reflect.TypeVariable<?>,java.lang.reflect.Type>> |
getAllTypeArguments(java.lang.reflect.ParameterizedType type)
For a given parameterized type, we retrieve a mapping of all type variables
on its raw type, as given by
getAllTypeParameters(Class) , to their
arguments within the context of this type. |
static java.util.stream.Stream<java.lang.reflect.TypeVariable<?>> |
getAllTypeParameters(java.lang.Class<?> rawType)
This method retrieves a list of all type variables present on the given raw
type, as well as all type variables on any enclosing types recursively, in
the order encountered.
|
static java.lang.reflect.ParameterizedType |
parameterize(java.lang.Class<?> rawType)
Derive an instance of
ParameterizedType from a raw Class ,
substituting the type parameters of that class as their own argument
instantiations. |
static java.lang.reflect.ParameterizedType |
parameterize(java.lang.Class<?> rawType,
java.util.function.Function<? super java.lang.reflect.TypeVariable<?>,? extends java.lang.reflect.Type> typeArguments)
Derive an instance of
ParameterizedType from a raw Class
using the given generic type arguments. |
static java.lang.reflect.ParameterizedType |
parameterize(java.lang.Class<?> rawType,
java.util.List<java.lang.reflect.Type> typeArguments)
Derive an instance of
ParameterizedType from a raw Class
using the given generic type arguments, in the order given. |
static java.lang.reflect.ParameterizedType |
parameterize(java.lang.Class<?> rawType,
java.lang.reflect.Type... typeArguments)
Derive an instance of
ParameterizedType from a raw Class
using the given generic type arguments, in the order given. |
static java.lang.reflect.ParameterizedType |
parameterizeUnchecked(java.lang.Class<?> rawType,
java.util.List<java.lang.reflect.Type> typeArguments)
As @see
parameterize(Class, List) , but without checking type
arguments for consistency. |
static java.lang.reflect.ParameterizedType |
parameterizeUnchecked(java.lang.Class<?> rawType,
java.lang.reflect.Type... typeArguments)
As @see
parameterize(Class, Type[]) , but without checking type
arguments for consistency. |
static <T> java.lang.reflect.ParameterizedType |
parameterizeUnchecked(java.lang.Class<T> rawType,
java.util.function.Function<? super java.lang.reflect.TypeVariable<?>,? extends java.lang.reflect.Type> typeArguments)
As @see
parameterize(Class, Function) , but without checking type
arguments for consistency. |
static java.lang.reflect.ParameterizedType |
parameterizeUnchecked(java.lang.reflect.Type ownerType,
java.lang.Class<?> rawType,
java.util.List<java.lang.reflect.Type> typeArguments)
Derive an instance of
ParameterizedType from a raw Class
using the given generic type arguments and owning type. |
static java.lang.String |
toString(java.lang.reflect.ParameterizedType parameterizedType,
Imports imports)
Format a string describing a given parameterized type, assuming the given
imports . |
static java.lang.String |
toString(java.lang.reflect.ParameterizedType parameterizedType,
Imports imports,
Isomorphism isomorphism)
Format a string describing a given parameterized type, assuming the given
imports and using the given Isomorphism to skip
recurring types. |
protected static java.lang.reflect.ParameterizedType |
validate(java.lang.reflect.ParameterizedType type) |
public static java.lang.String toString(java.lang.reflect.ParameterizedType parameterizedType, Imports imports)
imports
.parameterizedType
- the type we wish to express as a stringimports
- the imports with which to inform qualification omissionpublic static java.lang.String toString(java.lang.reflect.ParameterizedType parameterizedType, Imports imports, Isomorphism isomorphism)
imports
and using the given Isomorphism
to skip
recurring types.parameterizedType
- the type we wish to express as a stringimports
- the imports with which to inform qualification omissionisomorphism
- the isomorphism with which to skip repeated typespublic static java.util.stream.Stream<java.lang.reflect.TypeVariable<?>> getAllTypeParameters(java.lang.Class<?> rawType)
rawType
- The class whose generic type parameters we wish to determine.public static java.util.stream.Stream<java.util.Map.Entry<java.lang.reflect.TypeVariable<?>,java.lang.reflect.Type>> getAllTypeArguments(java.lang.reflect.ParameterizedType type)
getAllTypeParameters(Class)
, to their
arguments within the context of this type.type
- The type whose generic type arguments we wish to determine.public static java.lang.reflect.ParameterizedType parameterizeUnchecked(java.lang.reflect.Type ownerType, java.lang.Class<?> rawType, java.util.List<java.lang.reflect.Type> typeArguments)
ParameterizedType
from a raw Class
using the given generic type arguments and owning type. Type parameters with
no provided argument will be parameterized with the type variables
themselves.ownerType
- the owner type for the resulting parameterized typerawType
- A raw Class
from which we wish to determine a
ParameterizedType
.typeArguments
- A mapping of generic type variables to arguments.ParameterizedType
instance over the given class,
parameterized with the given type arguments.public static java.lang.reflect.ParameterizedType parameterizeUnchecked(java.lang.Class<?> rawType, java.lang.reflect.Type... typeArguments)
parameterize(Class, Type[])
, but without checking type
arguments for consistency.public static java.lang.reflect.ParameterizedType parameterizeUnchecked(java.lang.Class<?> rawType, java.util.List<java.lang.reflect.Type> typeArguments)
parameterize(Class, List)
, but without checking type
arguments for consistency.public static <T> java.lang.reflect.ParameterizedType parameterizeUnchecked(java.lang.Class<T> rawType, java.util.function.Function<? super java.lang.reflect.TypeVariable<?>,? extends java.lang.reflect.Type> typeArguments)
parameterize(Class, Function)
, but without checking type
arguments for consistency.public static java.lang.reflect.ParameterizedType parameterize(java.lang.Class<?> rawType)
ParameterizedType
from a raw Class
,
substituting the type parameters of that class as their own argument
instantiations.rawType
- A raw Class
from which we wish to determine a
ParameterizedType
.ParameterizedType
instance over the given class.public static java.lang.reflect.ParameterizedType parameterize(java.lang.Class<?> rawType, java.util.function.Function<? super java.lang.reflect.TypeVariable<?>,? extends java.lang.reflect.Type> typeArguments)
ParameterizedType
from a raw Class
using the given generic type arguments. Type parameters with no provided
argument will be parameterized with the type variables themselves.rawType
- A raw Class
from which we wish to determine a
ParameterizedType
.typeArguments
- A mapping of generic type variables to arguments.ParameterizedType
instance over the given class,
parameterized with the given type arguments.public static java.lang.reflect.ParameterizedType parameterize(java.lang.Class<?> rawType, java.lang.reflect.Type... typeArguments)
ParameterizedType
from a raw Class
using the given generic type arguments, in the order given.rawType
- A raw Class
from which we wish to determine a
ParameterizedType
. The raw type must not have a non
statically enclosing type which is itself generic.typeArguments
- A list of Type
s to substitute as type arguments for the
given generic class. There should be exactly as many type arguments
as there are type parameters for the given class.ParameterizedType
instance over the given class,
parameterized with the given type arguments, in orderpublic static java.lang.reflect.ParameterizedType parameterize(java.lang.Class<?> rawType, java.util.List<java.lang.reflect.Type> typeArguments)
ParameterizedType
from a raw Class
using the given generic type arguments, in the order given.rawType
- A raw Class
from which we wish to determine a
ParameterizedType
. The raw type must not have a non
statically enclosing type which is itself generic.typeArguments
- A list of Type
s to substitute as type arguments for the
given generic class. There should be exactly as many type arguments
as there are type parameters for the given class.ParameterizedType
instance over the given class,
parameterized with the given type arguments, in orderprotected static java.lang.reflect.ParameterizedType validate(java.lang.reflect.ParameterizedType type)