2012-05-01 10 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

는 코드

  1. 제거 코드를 형성하지 자바 1.4에서 지원되는 몇 가지가 있습니다.
  2. T 참조 대신 Object를 사용하십시오.
  3. for 루프를 이전 인덱스 기반으로 변경합니다.
+0

final 클래스 FooList는 AbstractList ... {private object [] tab;}'을 확장합니까? – user1367401

+0

3. 인덱싱은 for-each와 동일하지 않습니다. 하나는 반복자를 사용해야합니다. –

0

Retroweaver을 사용해보십시오. Java 1.4에서 Java 5의 일부 기능을 사용할 수 있습니다.