Source Home >> Java Source 1.6.0 >> java.lang.reflect.TypeVariable V 0.09
  • 01/*
  • 02 * @(#)TypeVariable.java 1.5 05/11/30
  • 03 *
  • 04 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
  • 05 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  • 06 */
  • 07
  • 08package java.lang.reflect;
  • 09
  • 10/**
  • 11 * TypeVariable is the common superinterface for type variables of kinds.
  • 12 * A type variable is created the first time it is needed by a reflective
  • 13 * method, as specified in this package. If a type variable t is referenced
  • 14 * by a type (i.e, class, interface or annotation type) T, and T is declared
  • 15 * by the nth enclosing class of T (see JLS 8.1.2), then the creation of t
  • 16 * requires the resolution (see JVMS 5) of the ith enclosing class of T,
  • 17 * for i = 0 to n, inclusive. Creating a type variable must not cause the
  • 18 * creation of its bounds. Repeated creation of a type variable has no effect.
  • 19 *
  • 20 * <p>Multiple objects may be instantiated at run-time to
  • 21 * represent a given type variable. Even though a type variable is
  • 22 * created only once, this does not imply any requirement to cache
  • 23 * instances representing the type variable. However, all instances
  • 24 * representing a type variable must be equal() to each other.
  • 25 * As a consequence, users of type variables must not rely on the identity
  • 26 * of instances of classes implementing this interface.
  • 27 *
  • 28 * @param <D> the type of generic declaration that declared the
  • 29 * underlying type variable.
  • 30 *
  • 31 * @since 1.5
  • 32 */
  • 33public interface TypeVariable<D extends GenericDeclaration> extends Type {
  • 34 /**
  • 35 * Returns an array of <tt>Type</tt> objects representing the
  • 36 * upper bound(s) of this type variable. Note that if no upper bound is
  • 37 * explicitly declared, the upper bound is <tt>Object</tt>.
  • 38 *
  • 39 * <p>For each upper bound B: <ul> <li>if B is a parameterized
  • 40 * type or a type variable, it is created, (see {@link
  • 41 * java.lang.reflect.ParameterizedType ParameterizedType} for the
  • 42 * details of the creation process for parameterized types).
  • 43 * <li>Otherwise, B is resolved. </ul>
  • 44 *
  • 45 * @throws TypeNotPresentException if any of the
  • 46 * bounds refers to a non-existent type declaration
  • 47 * @throws MalformedParameterizedTypeException if any of the
  • 48 * bounds refer to a parameterized type that cannot be instantiated
  • 49 * for any reason
  • 50 * @return an array of <tt>Type</tt>s representing the upper
  • 51 * bound(s) of this type variable
  • 52 */
  • 53 Type[] getBounds();
  • 54
  • 55 /**
  • 56 * Returns the <tt>GenericDeclaration</tt> object representing the
  • 57 * generic declaration declared this type variable.
  • 58 *
  • 59 * @return the generic declaration declared for this type variable.
  • 60 *
  • 61 * @since 1.5
  • 62 */
  • 63 D getGenericDeclaration();
  • 64
  • 65 /**
  • 66 * Returns the name of this type variable, as it occurs in the source code.
  • 67 *
  • 68 * @return the name of this type variable, as it appears in the source code
  • 69 */
  • 70 String getName();
  • 71}
  • 72

文件:TypeVariable.java
包名:java.lang.reflect
类名:TypeVariable
继承:Type
接口: