我想使用一个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”类进行全部/大部分更改?
答案 0 :(得分:0)
如果我正确理解了您的问题,您希望使用名为ArayListVariable
的类,您可以在任何可以使用ListVariable
的地方使用该类。如果是这种情况,您可以扩展Variable
抽象类
public class ArrayListVariable extends Variable
{
// overrides of required functions
}
或实施MutableVariable
界面
public class ArrayListVariable implements MutableVariable
{
// implementations of required functions
}