0

我想使用一个 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”实现了变量——每个ListVariable都有一个List加上一些与列表和字符串操作有关的实用函数。

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

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

4

1 回答 1

0

如果我正确理解您的问题,您不想使用一个名为的类ArayListVariable,您可以在任何可以使用ListVariable. 如果是这种情况,您可以扩展Variable抽象类

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

或者实现MutableVariable接口

public class ArrayListVariable implements MutableVariable
{
  // implementations of required functions
}
于 2012-06-06T18:27:45.913 回答