Holds if there is a common (reflexive, transitive) subtype of the erasures of
If there is no such common subtype, then the two types are disjoint.
However, the converse is not true; for example, the parameterized types
Collection<String> are disjoint,
but their erasures (
do have common subtypes (such as
For the definition of the notion of erasure see JLS v8, section 4.6 (Type Erasure).
predicate haveIntersection ( RefType t1 , RefType t2 )