This implies that the type is unknown and objects of any type can be added to List> that are heterogeneous and compiler cannot guarantee that all object in List> are of same type. Hence it cannot be passed to new ArrayList>() that takes a bounded type as parameter.