package org.etk.reflect.api; import java.util.List; /** * TypeVariableInfo 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. * * @author thanh_vucong */ public interface TypeVariableInfo extends TypeInfo { /** * Returns an array of Type objects representing the upper bound(s) of this * type variable. Note that if no upper bound is explicitly declared, the * upper bound is Object. * * @return the bound list */ List<TypeInfo> getBounds(); /** * Return the related generic declaration * * @return the generic declaration */ GenericDeclarationInfo getGenericDeclaration(); /** * Returns the name of the variable. * * @return the variable name */ String getVariableName(); }