List<Object> listDomesticPets = new LinkedList<Object>();
    listDomesticPets.add(new Spaniels());
    listDomesticPets.add(new Poodles());
    listDomesticPets.add(new Poodles("non default poodles"));
    listDomesticPets.add(new Cats());
    ListReflector.reflect(listDomesticPets);
    Class<? extends Object> lowest1 = ListReflector
        .lowestCommonSuperclass(listDomesticPets);