### Question:
ObjectList { public static Object replace (Object head, Object oldData, Object newData){ if (oldData == null){ return head; } if (newData == null){ return remove(head, oldData); } if (head instanceof Node){ for (Node n = (Node)head; n != null; n = n.next){ if (oldData.equals(n.data)){ n.data = newData; } } return head; } else { if (oldData.equals(head)){ return newData; } else { return head; } } } private  ObjectList(); static Iterator iterator(Object head); static TypedIterator<A> typedIterator(Object head, Class<A> type); static Object createList(Object... values); static Object valueOf(Object o); static Object set(Object head, Object newHead); static Object forceSet(Object head, Object newHead); static Object add(Object head, Object data); static Object replace(Object head, Object oldData, Object newData); static Object remove(Object head, Object data); static boolean contains(Object head, Object o); static boolean containsType(Object head, Class<?> type); static boolean isList(Object head); static boolean isEmpty(Object head); static int size(Object head); static int numberOfInstances(Object head, Class<?> type); static Object get(Object head, int idx); static Object getFirst(Object head); static Object getNext(Object head, Object prevData); static A getFirst(Object head, Class<A> type); static A getNext(Object head, Class<A> type, Object prevData); static void hash(Object head, HashData hd); static boolean equals( Object head1, Object head2); static Object clone(Object head);  }### Answer:
@Test public void testReplace(){ String one = "one"; attr = ObjectList.add(attr, one); Integer i1 = new Integer(1); attr = ObjectList.replace(attr, one, i1); assertTrue(attr == i1); String two = "two"; Integer i2 = new Integer(2); attr = ObjectList.add(attr, two); attr = ObjectList.replace(attr, two, i2); Integer o = ObjectList.getFirst(attr, Integer.class); assertTrue( o == i2); int i=0; for (Object a: ObjectList.iterator(attr)){ System.out.printf("[%d] = %s\n", i++, a.toString()); } assertTrue( ObjectList.size(attr) == 2); }