# Interface IntersectionType

All Superinterfaces:
  `AnnotatedConstruct, TypeMirror`

public interface IntersectionType extends TypeMirror
Represents an intersection type.

An intersection type can be either implicitly or explicitly declared in a program. For example, the bound of the type parameter `<T extends Number & Runnable>` is an (implicit) intersection type. This is represented by an `IntersectionType` with `Number` and `Runnable` as its bounds.

Implementation Note:
  In the reference implementation an `IntersectionType` is used to model the explicit target type of a cast expression.
Since:
  1.8

## Method Summary

Modifier and Type
Method
Description
`List<? extends TypeMirror>`
`getBounds()`
Returns the bounds comprising this intersection type.

### Methods declared in interface TypeMirror

`accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, getKind, hashCode, toString`
Modifier and Type
Method
Description
`<R,P> R`
`accept(TypeVisitor<R,P> v, P p)`
Applies a visitor to this type.
`boolean`
`equals(Object obj)`
Obeys the general contract of `Object.equals`.
`<A extends Annotation>
A`
`getAnnotation(Class<A> annotationType)`
Returns this construct's annotation of the specified type if such an annotation is present, else `null`.
`List<? extends AnnotationMirror>`
`getAnnotationMirrors()`
Returns the annotations that are directly present on this construct.
`<A extends Annotation>
A[]`
`getAnnotationsByType(Class<A> annotationType)`
Returns annotations of the specified type that are associated with this construct.
`TypeKind`
`getKind()`
Returns the `kind` of this type.
`int`
`hashCode()`
Obeys the general contract of `Object.hashCode`.
`String`
`toString()`
Returns an informative string representation of this type.

## Method Details

### getBounds

List<? extends TypeMirror> getBounds()
Returns the bounds comprising this intersection type.

Returns:
  the bounds comprising this intersection type