LazyList implements Cloneable, Serializable { public static Object ensureSize(Object list, int initialSize) { if (list == null) return new ArrayList<Object>(initialSize); if (list instanceof ArrayList) { ArrayList<?> ol = (ArrayList<?>) list; if (ol.size() > initialSize) return ol; ArrayList<Object> nl = new ArrayList<>(initialSize); nl.addAll(ol); return nl; } List<Object> l = new ArrayList<>(initialSize); l.add(list); return l; } private  LazyList(); @SuppressWarnings("unchecked") static Object add(Object list, Object item); @SuppressWarnings("unchecked") static Object add(Object list, int index, Object item); static Object addCollection(Object list, Collection<?> collection); static Object addArray(Object list, Object[] array); static Object ensureSize(Object list, int initialSize); static Object remove(Object list, Object o); static Object remove(Object list, int i); static List<E> getList(Object list); @SuppressWarnings("unchecked") static List<E> getList(Object list, boolean nullForEmpty); static boolean hasEntry(Object list); static boolean isEmpty(Object list); static String[] toStringArray(Object list); static Object toArray(Object list, Class<?> clazz); static int size(Object list); @SuppressWarnings("unchecked") static E get(Object list, int i); static boolean contains(Object list, Object item); static Object clone(Object list); static String toString(Object list); @SuppressWarnings("unchecked") static Iterator<E> iterator(Object list); @SuppressWarnings("unchecked") static ListIterator<E> listIterator(Object list);  }
@Test void testEnsureSize_NullInput() { Object list = LazyList.ensureSize(null, 10); assertNotNull(list); assertTrue(list instanceof List); }