Search code examples
javaparameterizedbackport

Backporting Java 1.5+ to 1.4


How to rewrite the following 1.5+ constructs to 1.4?

final class FooList<T> extends AbstractList<T> implements ...
{
    private T[] tab;
    ...
}

public ListIterator<T> listIterator() {...}

public int bar(int x, Collection<? extends T> c) {...}

for (Foo f : s.baz(x)) {...}

for (Map.Entry<Object, Object> e : p.entrySet()) {...}  

Solution

  • final class FooList extends AbstractList implements ...
    {
        private Object[] tab;
        ...
    }
    
    public ListIterator listIterator() {...}
    
    public int bar(int x, Collection c) {...}
    
    for (Iterator it = s.baz(x).iterator(); it.hasNext();) {
      final Foo f = (Foo) it.next();
      ...
    }
    
    for (Iterator it = p.entrySet().iterator(); it.hasNext();) {
      final Map.Entry e = (Map.Entry) it.next();
      ...
    }
    

    Plus all the necessary downcasts, of course.