ListUtil { public static <E> List<E> newLinkedList() { return new LinkedList<>(); }  static List<E> newArrayList(); static List<E> newArrayList(int initialCapacity); static List<E> newArrayList(Collection<? extends E> c); @SafeVarargs static List<E> buildArrayList(E... values); @SuppressWarnings("rawtypes") static Class<? extends List> getArrayListClass(); static List<E> newLinkedList(); static List<E> newLinkedList(Collection<? extends E> c); @SafeVarargs static List<E> buildLinkedList(E... values); @SuppressWarnings("rawtypes") static Class<? extends List> getLinkedListClass(); static boolean isEmpty(List<?> list); static void forEach(int startIndex, int spanNum, Iterable<? extends T> elements,
			BiConsumer<Integer, ? super T> action);  }
@Test public void testNewLinkedList() { List<Object> list1 = ListUtil.newLinkedList(); assertEquals(list1.size(), 0); list1.add("1"); assertEquals(list1.size(), 1); List<String> list2 = ListUtil.buildLinkedList("1", "2"); assertEquals(list2.size(), 2); }