java-尝试使用/ convert接口与/代替抽象类

时间:2012-06-06 18:18:06

标签: java list arraylist

我想使用一个java库作为ArrayLists的替代......这个库(“Vanilla Java Collections”)需要以下列方式声明接口 -

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

这是声明此列表的方式 -

// 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();

在同一个接口中可以有多种数据类型来插入/检索字符串,整数,双等值......

现在,在我正在开发的应用程序中,有一个自定义变量定义 -

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”类扩展了“Variable”,另一个类“ListVariable”实现了Variable--每个ListVariable都有一个List以及一些与列表和字符串操作有关的实用函数。

我想实现数组替换(“Vanilla Java Collections”) - 它需要一个接口来代替'ListVariable'。但是“变量”类是一个抽象类。所以我在这里感到困惑 - 如何实现接口以便我可以使用ArrayList替换(“Vanilla Java Collections”)代替“ListVariable”?

这是否可以通过对使用“ListVariable”的现有代码进行最小的更改,即对“ListVariable”类进行全部/大部分更改?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您希望使用名为ArayListVariable的类,您可以在任何可以使用ListVariable的地方使用该类。如果是这种情况,您可以扩展Variable抽象类

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

或实施MutableVariable界面

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