InformedArrayList extends ArrayList<E> implements InformedIterable<E> { @Override public Class<? extends E> getElementType() { return this.clazz; } InformedArrayList();  InformedArrayList(int initialCapacity);  InformedArrayList(Collection<? extends E> collection);  InformedArrayList(Class<? extends E> clazz);  InformedArrayList(int initialCapacity, Class<? extends E> clazz);  InformedArrayList(Collection<? extends E> collection, Class<? extends E> clazz); boolean isTypeRecomputedAfterRemoval(); void setTypeRecomputedAfterRemoval(boolean update); @Override Class<? extends E> getElementType(); void setElementType(Class<? extends E> type); @Override boolean add(E elt); @Override void add(int index, E element); @Override boolean addAll(Collection<? extends E> collection); @Override boolean addAll(int index, Collection<? extends E> collection); @Override void clear(); @Override E remove(int index); @Override boolean remove(Object obj); @SuppressWarnings("unchecked") @Override E set(int index, E element);  }
@Test public void getElementType() { assertNull(this.list.getElementType()); }