## Uses of Interface
java.lang.reflect.Type

Packages that use Type
java.lang: Provides classes that are fundamental to the design of the Java programming language.
java.lang.reflect: Provides classes and interfaces for obtaining reflective information about classes and objects.

### Uses of Type in java.lang

Classes in java.lang that implement Type
`class` `Class<T>` Instances of the class `Class` represent classes and interfaces in a running Java application.

Methods in java.lang that return Type
`Type[]` Class.`getGenericInterfaces()` Returns the `Type`s representing the interfaces directly implemented by the class or interface represented by this object.
`Type` Class.`getGenericSuperclass()` Returns the `Type` representing the direct superclass of the entity (class, interface, primitive type or void) represented by this `Class`.

### Uses of Type in java.lang.reflect

Subinterfaces of Type in java.lang.reflect
`interface` `GenericArrayType` `GenericArrayType` represents an array type whose component type is either a parameterized type or a type variable.
`interface` `ParameterizedType` ParameterizedType represents a parameterized type such as Collection<String>.
`interface` `TypeVariable<D extends GenericDeclaration>` TypeVariable is the common superinterface for type variables of kinds.
`interface` `WildcardType` WildcardType represents a wildcard type expression, such as `?`, `? extends Number`, or `? super Integer`.

Methods in java.lang.reflect that return Type
`Type[]` ParameterizedType.`getActualTypeArguments()` Returns an array of `Type` objects representing the actual type arguments to this type.
`Type[]` TypeVariable.`getBounds()` Returns an array of `Type` objects representing the upper bound(s) of this type variable.
`Type` GenericArrayType.`getGenericComponentType()` Returns a `Type` object representing the component type of this array.
`Type[]` Executable.`getGenericExceptionTypes()` Returns an array of `Type` objects that represent the exceptions declared to be thrown by this executable object.
`Type[]` Method.`getGenericExceptionTypes()` Returns an array of `Type` objects that represent the exceptions declared to be thrown by this executable object.
`Type[]` Constructor.`getGenericExceptionTypes()` Returns an array of `Type` objects that represent the exceptions declared to be thrown by this executable object.
`Type[]` Executable.`getGenericParameterTypes()` Returns an array of `Type` objects that represent the formal parameter types, in declaration order, of the executable represented by this object.
`Type[]` Method.`getGenericParameterTypes()` Returns an array of `Type` objects that represent the formal parameter types, in declaration order, of the executable represented by this object.
`Type[]` Constructor.`getGenericParameterTypes()` Returns an array of `Type` objects that represent the formal parameter types, in declaration order, of the executable represented by this object.
`Type` Method.`getGenericReturnType()` Returns a `Type` object that represents the formal return type of the method represented by this `Method` object.
`Type` Field.`getGenericType()` Returns a `Type` object that represents the declared type for the field represented by this `Field` object.
`Type[]` WildcardType.`getLowerBounds()` Returns an array of `Type` objects representing the lower bound(s) of this type variable.
`Type` ParameterizedType.`getOwnerType()` Returns a `Type` object representing the type that this type is a member of.
`Type` Parameter.`getParameterizedType()` Returns a `Type` object that identifies the parameterized type for the parameter represented by this `Parameter` object.
`Type` ParameterizedType.`getRawType()` Returns the `Type` object representing the class or interface that declared this type.
`Type` AnnotatedType.`getType()` Returns the underlying type that this annotated type represents.
`Type[]` WildcardType.`getUpperBounds()` Returns an array of `Type` objects representing the upper bound(s) of this type variable.