2012-06-06 3 views
0

ArrayList 대신 사용할 수있는 Java 라이브러리를 사용하고 싶습니다.이 라이브러리 ("Vanilla Java Collections")에는 인터페이스가 필요합니다 선언 할 다음 manner--java- 추상 클래스 대신/사용하기 위해 인터페이스를 사용/변환하려고합니다.

interface MutableBoolean { 
    public void setFlag(boolean b); 
    public boolean getFlag(); 
} 

이이 목록이 데이터는 retrieved-- 방법입니다 declared--

// create a huge array of MutableBoolean 
HugeArrayList<MutableBoolean> hugeList = new HugeArrayBuilder<MutableBoolean>() {}.create(); 
List<MutableBoolean> list = hugeList; 

방법입니다

for (MutableTypes mb : list) { 
boolean b1 = mb.getBoolean(); 
,

... 이제

/삽입 문자열, 정수, 더블 등의 값을 검색 할 수있는 동일한 인터페이스에서 여러 데이터 유형이있을 수있다, 내가 일하고 응용 프로그램에서

definition-- 사용자 정의 변수가있다
public abstract class Variable implements MutableVariable { 

    abstract public byte[] toBinary(); 
    abstract public byte[] toBinary(String charset); 
    abstract public String toString(); 
    abstract public String toString(String charset); 
    abstract public List toList(); 
    abstract public boolean isEmpty(); 
    abstract public Object getWrappedObject(); 
    ----plus some more functions---- 

또한 클래스 "변수"및 각 ListVariable이 목록을 가지고 플러스 몇 가지 유틸리티 기능 목록과 문자열 조작에 관한 Variable--를 구현하는 다른 클래스 "ListVariable"확장 "NodeVariable"가있다.

'ListVariable'대신 interface-가 필요한 대체 배열 ("Vanilla Java Collections")을 구현하고 싶습니다. 그러나 "Variable"클래스는 추상 클래스입니다. 그래서 여기에 혼란 스러워요 - 나는 어떻게 ListVariable 대신 ArrayList Substitute ("Vanilla Java Collections")를 사용할 수 있도록 인터페이스를 구현합니까?

"ListVariable"을 사용하는 기존 코드를 최소한으로 변경하면 "ListVariable"클래스 전체 또는 대부분을 변경함으로써 가능합니까?

답변

0

질문을 올바르게 이해하면 을 사용할 수있는 곳이면 어디서든 사용할 수있는 ArayListVariable 클래스를 사용하고 싶습니다. 이 경우, 당신은 Variable 추상 클래스를

public class ArrayListVariable extends Variable 
{ 
    // overrides of required functions 
} 

을 확장하거나 MutableVariable 인터페이스

public class ArrayListVariable implements MutableVariable 
{ 
    // implementations of required functions 
} 
을 구현할 수 있습니다
관련 문제