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 javax.lang.model.type; 27 28 import java.util.List; 29 30 /** 31 * Represents an intersection type. 32 * 33 * <p>An intersection type can be either implicitly or explicitly 34 * declared in a program. For example, the bound of the type parameter 35 * {@code <T extends Number & Runnable>} is an (implicit) intersection 36 * type. As of {@link javax.lang.model.SourceVersion#RELEASE_8 37 * RELEASE_8}, this is represented by an {@code IntersectionType} with 38 * {@code Number} and {@code Runnable} as its bounds. 39 * 40 * @implNote Also as of {@link 41 * javax.lang.model.SourceVersion#RELEASE_8 RELEASE_8}, in the 42 * reference implementation an {@code IntersectionType} is used to 43 * model the explicit target type of a cast expression. 44 * 45 * @since 1.8 46 */ 47 public interface IntersectionType extends TypeMirror { 48 49 /** 50 * Return the bounds comprising this intersection type. 51 * 52 * @return the bounds of this intersection types. 53 */ 54 List<? extends TypeMirror> getBounds(); 55 } | 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 javax.lang.model.type; 27 28 import java.util.List; 29 30 /** 31 * Represents an intersection type. 32 * 33 * <p>An intersection type can be either implicitly or explicitly 34 * declared in a program. For example, the bound of the type parameter 35 * {@code <T extends Number & Runnable>} is an (implicit) intersection 36 * type. This is represented by an {@code IntersectionType} with 37 * {@code Number} and {@code Runnable} as its bounds. 38 * 39 * @implNote In the reference implementation an {@code 40 * IntersectionType} is used to model the explicit target type of a 41 * cast expression. 42 * 43 * @since 1.8 44 */ 45 public interface IntersectionType extends TypeMirror { 46 47 /** 48 * Return the bounds comprising this intersection type. 49 * 50 * @return the bounds of this intersection type 51 */ 52 List<? extends TypeMirror> getBounds(); 53 } |