LazyList implements Cloneable, Serializable { public static Object remove(Object list, Object o) { if (list == null) return null; if (list instanceof List) { List<?> l = (List<?>) list; l.remove(o); if (l.size() == 0) return null; return list; } if (list.equals(o)) return null; return list; } 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 testRemoveObjectObject_NullInput() { Object input = null; assertNull(LazyList.remove(input, null)); assertNull(LazyList.remove(input, "a")); assertNull(LazyList.remove(input, new ArrayList<>())); assertNull(LazyList.remove(input, Integer.valueOf(42))); }
@Test void testRemoveObjectInt_NullInput() { Object input = null; assertNull(LazyList.remove(input, 0)); assertNull(LazyList.remove(input, 2)); assertNull(LazyList.remove(input, -2)); }