2012-06-06 19 views
0

我想用它充當的ArrayList替代一個Java庫的...這個庫(「香草的Java集合」)需要一個接口在被宣佈以下manner--Java的嘗試使用/轉換接口與/使用替代抽象類

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

這是這個名單是怎麼declared--

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

這是數據是如何retrieved--

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---- 

另外還有一類「NodeVariable」延伸「變量」和另一個類「ListVariable」它實現變量 - 每個ListVariable具有列表加上一些實用功能有關列表和字符串操作。

我要實現的陣列替代(「香草的Java集合」) - 這需要地方的「ListVariable」的界面 - 。但類「變量」是一個抽象類。所以我很困惑 - 我如何實現接口,以便我可以使用ArrayList替換(「Vanilla Java Collections」)來代替「ListVariable」?

而且這可能與最小的變化,利用「ListVariable」現有的代碼,即通過使所有/大部分變爲「ListVariable」類?

回答

0

如果我正確理解您的問題,您不想使用名爲ArayListVariable的課程,您可以在任何可以使用ListVariable的地方使用該課程。如果是這樣的話,你可以擴展Variable抽象類

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

或實現MutableVariable接口

public class ArrayListVariable implements MutableVariable 
{ 
    // implementations of required functions 
}