2012-05-01 112 views
0

如何將以下1.5+結構重寫爲1.4?將Java 1.5+支持到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()) {...} 

回答

1
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(); 
    ... 
} 

加上所有必要的downcasts,當然。

1

有Java 1.4中不支持一些東西在你的代碼

  1. 刪除表單代碼。
  2. 使用對象而不是您的T引用。
  3. 更改爲基於舊索引的循環。
+0

'final class FooList extends AbstractList ... {private Object [] tab;}'? – user1367401

+0

3. - 索引不等於for-each。必須使用迭代器。 –

0

您可以試試Retroweaver,它允許使用Java 1.4中的Java 5的某些功能。