Backporting Java 1.5+ to 1.4
-
04-06-2021 - |
Pregunta
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()) {...}
Solución
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.
Otros consejos
There are few thing not supported in Java 1.4 in your code
- Remove form your code.
- Use Object instead of your T reference.
- Change for loop to old index based.
You could try Retroweaver, it allows to use some features of Java 5 in Java 1.4.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow