Package org.gradle.api.reflect
Class TypeOf<T>
- java.lang.Object
-
- org.gradle.api.reflect.TypeOf<T>
-
- Type Parameters:
T- Parameterized type
public abstract class TypeOf<T> extends java.lang.ObjectProvides a way to preserve high-fidelityTypeinformation on generic types. Capture a generic type with an anonymous subclass. For example:new TypeOf<NamedDomainObjectContainer<ArtifactRepository>>() {}- Since:
- 3.5
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedTypeOf()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object o)java.util.List<TypeOf<?>>getActualTypeArguments()Returns the list of type arguments used in the construction of this parameterized type.TypeOf<?>getComponentType()Returns the component type of the array type this object represents.java.lang.Class<T>getConcreteClass()This returns the underlying, concrete JavaClass.java.lang.StringgetFullyQualifiedName()Fully Qualified name.TypeOf<?>getLowerBound()Returns the first declared lower-bound of the wildcard type expression represented by this type.TypeOf<?>getParameterizedTypeDefinition()Returns an object that represents the type from which this parameterized type was constructed.java.lang.StringgetSimpleName()Simple name.TypeOf<?>getUpperBound()Returns the first declared upper-bound of the wildcard type expression represented by this type.inthashCode()booleanisArray()Queries whether this object represents an array, generic or otherwise.booleanisAssignableFrom(java.lang.reflect.Type type)Is this type assignable from the given type?booleanisAssignableFrom(TypeOf<?> type)Is this type assignable from the given type?booleanisParameterized()Queries whether this object represents a parameterized type.booleanisPublic()Queries whether the type represented by this object is public (Modifier.isPublic(int)).booleanisSimple()Queries whether this object represents a simple (non-composite) type, not an array and not a generic type.booleanisSynthetic()Queries whether this object represents a synthetic type as defined byClass.isSynthetic().booleanisWildcard()Queries whether this object represents a wildcard type expression, such as?,? extends Number, or? super Integer.static TypeOf<?>parameterizedTypeOf(TypeOf<?> parameterizedType, TypeOf<?>... typeArguments)Constructs a new parameterized type from a given parameterized type definition and an array of type arguments.java.lang.StringtoString()static <T> TypeOf<T>typeOf(java.lang.Class<T> type)Creates an instance of TypeOf for the given Class.static <T> TypeOf<T>typeOf(java.lang.reflect.Type type)Creates an instance of TypeOf for the given Type.
-
-
-
Method Detail
-
typeOf
public static <T> TypeOf<T> typeOf(java.lang.Class<T> type)
Creates an instance of TypeOf for the given Class.- Type Parameters:
T- the parameterized type of the given Class- Parameters:
type- the Class- Returns:
- the TypeOf that captures the generic type of the given Class
-
typeOf
public static <T> TypeOf<T> typeOf(java.lang.reflect.Type type)
Creates an instance of TypeOf for the given Type.- Type Parameters:
T- the parameterized type of the given Type- Parameters:
type- the Type- Returns:
- the TypeOf that captures the generic type of the given Type
-
parameterizedTypeOf
public static TypeOf<?> parameterizedTypeOf(TypeOf<?> parameterizedType, TypeOf<?>... typeArguments)
Constructs a new parameterized type from a given parameterized type definition and an array of type arguments. For example,parameterizedTypeOf(new TypeOf<List<?>>() {}, new TypeOf<String>() {})is equivalent tonew TypeOf<List<String>>() {}, except both the parameterized type definition and type arguments can be dynamically computed.- Parameters:
parameterizedType- the parameterized type from which to construct the new parameterized typetypeArguments- the arguments with which to construct the new parameterized type- See Also:
isParameterized()
-
isSimple
public boolean isSimple()
Queries whether this object represents a simple (non-composite) type, not an array and not a generic type.- Returns:
- true if this object represents a simple type.
-
isSynthetic
public boolean isSynthetic()
Queries whether this object represents a synthetic type as defined byClass.isSynthetic().- Returns:
- true if this object represents a synthetic type.
-
isPublic
public boolean isPublic()
Queries whether the type represented by this object is public (Modifier.isPublic(int)).- See Also:
Modifier.isPublic(int),Class.getModifiers()
-
isArray
public boolean isArray()
Queries whether this object represents an array, generic or otherwise.- Returns:
- true if this object represents an array.
- See Also:
getComponentType()
-
getComponentType
@Nullable public TypeOf<?> getComponentType()
Returns the component type of the array type this object represents.- Returns:
- null if this object does not represent an array type.
- See Also:
isArray()
-
isParameterized
public boolean isParameterized()
Queries whether this object represents a parameterized type.- Returns:
- true if this object represents a parameterized type.
- See Also:
getParameterizedTypeDefinition(),getActualTypeArguments()
-
getParameterizedTypeDefinition
public TypeOf<?> getParameterizedTypeDefinition()
Returns an object that represents the type from which this parameterized type was constructed.- See Also:
isParameterized()
-
getActualTypeArguments
public java.util.List<TypeOf<?>> getActualTypeArguments()
Returns the list of type arguments used in the construction of this parameterized type.- See Also:
isParameterized()
-
isWildcard
public boolean isWildcard()
Queries whether this object represents a wildcard type expression, such as?,? extends Number, or? super Integer.- Returns:
- true if this object represents a wildcard type expression.
- See Also:
getUpperBound()
-
getUpperBound
@Nullable public TypeOf<?> getUpperBound()
Returns the first declared upper-bound of the wildcard type expression represented by this type.- Returns:
- null if no upper-bound has been explicitly declared.
-
getLowerBound
@Nullable public TypeOf<?> getLowerBound()
Returns the first declared lower-bound of the wildcard type expression represented by this type.- Returns:
- null if no lower-bound has been explicitly declared.
- Since:
- 6.0
-
isAssignableFrom
public final boolean isAssignableFrom(TypeOf<?> type)
Is this type assignable from the given type?- Parameters:
type- the given type- Returns:
- true if this type is assignable from the given type, false otherwise
-
isAssignableFrom
public final boolean isAssignableFrom(java.lang.reflect.Type type)
Is this type assignable from the given type?- Parameters:
type- the given type- Returns:
- true if this type is assignable from the given type, false otherwise
-
getSimpleName
public java.lang.String getSimpleName()
Simple name.- Returns:
- this type's simple name
-
getFullyQualifiedName
public java.lang.String getFullyQualifiedName()
Fully Qualified name.- Returns:
- this type's FQN
- Since:
- 7.4
-
getConcreteClass
public java.lang.Class<T> getConcreteClass()
This returns the underlying, concrete Java
Class.For example, a simple
TypeOf<String>will be the given generic typeString.class.
Generic types likeTypeOf<List<String>>would have the concrete type ofList.class.
For array types likeTypeOf<String[]>, the concrete type will be an array of the component type (String[].class).- Returns:
- Underlying Java Class of this type.
- Since:
- 5.0
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-