Also known as "type intersection", when the generic type is bounded by multiple types, eg
In Java, a generic type may be upper bound to more than one type, using the &
operator, as follows:
<T extends B1 & B2 & B3>
At most 1 of the bounds may be a class
.
If a class is present in the list, it must be first.
See the relevant Oracle tutorial page for more info.