TypeVariable
interface TypeVariable<D : GenericDeclaration!> : Type
| java.lang.reflect.TypeVariable | 
TypeVariable is the common superinterface for type variables of kinds. A type variable is created the first time it is needed by a reflective method, as specified in this package. If a type variable t is referenced by a type (i.e, class, interface or annotation type) T, and T is declared by the nth enclosing class of T (see JLS 8.1.2), then the creation of t requires the resolution (see JVMS 5) of the ith enclosing class of T, for i = 0 to n, inclusive. Creating a type variable must not cause the creation of its bounds. Repeated creation of a type variable has no effect.
Multiple objects may be instantiated at run-time to represent a given type variable. Even though a type variable is created only once, this does not imply any requirement to cache instances representing the type variable. However, all instances representing a type variable must be equal() to each other. As a consequence, users of type variables must not rely on the identity of instances of classes implementing this interface.
Summary
| Public methods | |
|---|---|
| abstract Array<Type!> | Returns an array of  | 
| abstract D | Returns the  | 
| abstract String | getName()Returns the name of this type variable, as it occurs in the source code. | 
| Inherited functions | |
|---|---|
Public methods
getBounds
abstract fun getBounds(): Array<Type!>
Returns an array of Type objects representing the upper bound(s) of this type variable. If no upper bound is explicitly declared, the upper bound is Object. 
For each upper bound B:
- if B is a parameterized type or a type variable, it is created, (see for the details of the creation process for parameterized types).
- Otherwise, B is resolved.
| Return | |
|---|---|
| Array<Type!> | an array of Types representing the upper bound(s) of this type variable | 
| Exceptions | |
|---|---|
| java.lang.TypeNotPresentException | if any of the bounds refers to a non-existent type declaration | 
| java.lang.reflect.MalformedParameterizedTypeException | if any of the bounds refer to a parameterized type that cannot be instantiated for any reason | 
getGenericDeclaration
abstract fun getGenericDeclaration(): D
Returns the GenericDeclaration object representing the generic declaration declared this type variable.
| Return | |
|---|---|
| D | the generic declaration declared for this type variable. | 
getName
abstract fun getName(): String
Returns the name of this type variable, as it occurs in the source code.
| Return | |
|---|---|
| String | the name of this type variable, as it appears in the source code | 
