LazyList implements Cloneable, Serializable { public static Object toArray(Object list, Class<?> clazz) { if (list == null) return Array.newInstance(clazz, 0); if (list instanceof List) { List<?> l = (List<?>) list; if (clazz.isPrimitive()) { Object a = Array.newInstance(clazz, l.size()); for (int i = 0; i < l.size(); i++) Array.set(a, i, l.get(i)); return a; } return l.toArray((Object[]) Array.newInstance(clazz, l.size())); } Object a = Array.newInstance(clazz, 1); Array.set(a, 0, list); return a; } 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 testToArray_NullInput_Object() { Object input = null; Object arr = LazyList.toArray(input, Object.class); assertNotNull(arr); assertTrue(arr.getClass().isArray()); }
@Test void testToArray_NullInput_String() { String input = null; Object arr = LazyList.toArray(input, String.class); assertNotNull(arr); assertTrue(arr.getClass().isArray()); assertTrue(arr instanceof String[]); }
@Test void testToArray_NonListInput() { String input = "a"; Object arr = LazyList.toArray(input, String.class); assertNotNull(arr); assertTrue(arr.getClass().isArray()); assertTrue(arr instanceof String[]); String strs[] = (String[]) arr; assertEquals(1, strs.length); assertEquals("a", strs[0]); }