Save This Page
Home » openjdk-7 » java » lang » reflect » [javadoc | source]
    1   /*
    2    * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Oracle designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Oracle in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22    * or visit www.oracle.com if you need additional information or have any
   23    * questions.
   24    */
   25   
   26   package java.lang.reflect;
   27   
   28   /**
   29    * WildcardType represents a wildcard type expression, such as
   30    * {@code ?}, {@code ? extends Number}, or {@code ? super Integer}.
   31    *
   32    * @since 1.5
   33    */
   34   public interface WildcardType extends Type {
   35       /**
   36        * Returns an array of {@code Type} objects representing the  upper
   37        * bound(s) of this type variable.  Note that if no upper bound is
   38        * explicitly declared, the upper bound is {@code Object}.
   39        *
   40        * <p>For each upper bound B :
   41        * <ul>
   42        *  <li>if B is a parameterized type or a type variable, it is created,
   43        *  (see {@link java.lang.reflect.ParameterizedType ParameterizedType}
   44        *  for the details of the creation process for parameterized types).
   45        *  <li>Otherwise, B is resolved.
   46        * </ul>
   47        *
   48        * @return an array of Types representing the upper bound(s) of this
   49        *     type variable
   50        * @throws TypeNotPresentException if any of the
   51        *     bounds refers to a non-existent type declaration
   52        * @throws MalformedParameterizedTypeException if any of the
   53        *     bounds refer to a parameterized type that cannot be instantiated
   54        *     for any reason
   55        */
   56       Type[] getUpperBounds();
   57   
   58       /**
   59        * Returns an array of {@code Type} objects representing the
   60        * lower bound(s) of this type variable.  Note that if no lower bound is
   61        * explicitly declared, the lower bound is the type of {@code null}.
   62        * In this case, a zero length array is returned.
   63        *
   64        * <p>For each lower bound B :
   65        * <ul>
   66        *   <li>if B is a parameterized type or a type variable, it is created,
   67        *  (see {@link java.lang.reflect.ParameterizedType ParameterizedType}
   68        *  for the details of the creation process for parameterized types).
   69        *   <li>Otherwise, B is resolved.
   70        * </ul>
   71        *
   72        * @return an array of Types representing the lower bound(s) of this
   73        *     type variable
   74        * @throws TypeNotPresentException if any of the
   75        *     bounds refers to a non-existent type declaration
   76        * @throws MalformedParameterizedTypeException if any of the
   77        *     bounds refer to a parameterized type that cannot be instantiated
   78        *     for any reason
   79        */
   80       Type[] getLowerBounds();
   81       // one or many? Up to language spec; currently only one, but this API
   82       // allows for generalization.
   83   }

Save This Page
Home » openjdk-7 » java » lang » reflect » [javadoc | source]