static Class[] reduce(Collection c,boolean keepSupers){
  try {
    return reduce0((Class[])c.toArray(new Class[c.size()]),keepSupers);
  }
 catch (  ArrayStoreException e) {
    throw new IllegalArgumentException("element of collection is not a Class");
  }
}

static Class [ ] reduce ( Collection c , boolean keepSupers ) { try { return reduce0 ( ( Class [ ] ) c . toArray ( new Class [ c . size ( ) ] ) , keepSupers ) ; } catch ( ArrayStoreException e ) { throw new IllegalArgumentException ( "element of collection is not a Class" ) ; } }
verifies that all elements of the collection are classes , and that there is at least one element , and returns an array of the elements , in arbitrary order , with redundant classes removed as follows . for any two classes c1 and c2 , if c1 . isassignablefrom ( c2 ) is true , then c2 is removed if keepsupers is true , otherwise c1 is removed .
