[英]java- trying to use/convert interface for use with/in place of an abstract class
我想使用一个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”类进行全部/大部分更改)来实现?
如果我正确理解了您的问题,则希望使用一个名为ArayListVariable
的类,该类可以在可以使用ListVariable
任何地方使用。 在这种情况下,您可以扩展Variable
抽象类
public class ArrayListVariable extends Variable
{
// overrides of required functions
}
或实现MutableVariable
接口
public class ArrayListVariable implements MutableVariable
{
// implementations of required functions
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.