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);