### Question:
CollectionUtils { @SuppressWarnings("unchecked") public static <T> List<T> toBaseTypedList(List<? extends T> initial) { return (List<T>)initial; } private  CollectionUtils(); static void reconcileObjectCollections(Collection<T> existingCollection, Collection<T> updatedCollection,
                                                         CollectionReconciliationHelper<T, K> reconciliationHelper,
                                                         boolean removeMissingObjects); @SuppressWarnings("unchecked") static List<T> toBaseTypedList(List<? extends T> initial); @SuppressWarnings("unchecked") static Collection<T> toBaseTypedCollection(Collection<? extends T> initial); static void addUniqueValues(List<T> source, List<T> target); static T getSingleValue(List<T> list);  }### Answer:
@Test public void toBaseTypedList() { List<SubTestObject> list = new ArrayList<SubTestObject>(); list.add(new SubTestObject("a", "b")); list.add(new SubTestObject("a", "b")); list.add(new SubTestObject("a", "b")); List<TestObject> down = CollectionUtils.toBaseTypedList((List<? extends TestObject>)list); assertThat(down.get(0), is(sameInstance((TestObject)list.get(0)))); assertThat(down.get(0), is(sameInstance((TestObject)list.get(0)))); assertThat(down.get(0), is(sameInstance((TestObject)list.get(0)))); }
@Test public void toBaseTypedList_null() { List<SubTestObject> list = null; List<TestObject> down = CollectionUtils.toBaseTypedList((List<? extends TestObject>)list); assertThat(down, is(nullValue())); }