### Question:
ClassUtils { public static Set<Class> findAllTypes(Class cls) { Set<Class> types = new HashSet<Class>(); findAllTypes(cls, types); return types; } private  ClassUtils(); static Set<Class> findAllTypes(Class cls); static void findAllTypes(Class cls, Set<Class> types); static List<Class<?>> getTypeArguments(
            Class<T> baseClass, Class<? extends T> childClass);  }### Answer:
@Test public void testFindAllTypes() { assertEquals(newHashSet( List.class, AbstractList.class, Cloneable.class, RandomAccess.class, AbstractCollection.class, Iterable.class, Collection.class, ArrayList.class, Object.class, Serializable.class ), ClassUtils.findAllTypes(ArrayList.class)); }