Joint union in type parameter variance:
public class Baz {}
For example, if you wanted to take a parameter that's both Comparable and a Collection:
public static & Comparable>
boolean foo(B b1, B b2, A a) {
return (b1.compareTo(b2) == 0) || b1.contains(a) || b2.contains(a);
}
This contrived method returns true if the two given collections are equal or if either one of them contains the given element, otherwise false. The point to notice is that you can invoke methods of both Comparable and Collection on the arguments b1 and b2.