0

ArrayLists の代替として機能する Java ライブラリを使用したい...このライブラリ (「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----

また、「Variable」を拡張するクラス「NodeVariable」と、Variable を実装する別のクラス「ListVariable」があります。各 ListVariable には、List と、リストおよび文字列操作に関連するいくつかのユーティリティ関数があります。

'ListVariable' の代わりに、配列の代用 ("Vanilla Java Collections") (インターフェイスが必要) を実装したいと考えています。しかし、クラス「変数」は抽象クラスです。ここで混乱しています。「ListVariable」の代わりに ArrayList Substitute(「Vanilla Java Collections」) を使用できるようにするには、どのようにインターフェイスを実装すればよいですか?

また、「ListVariable」を利用する既存のコードに最小限の変更を加えるだけで、つまり「ListVariable」クラスにすべて/ほとんどの変更を加えることで、これは可能ですか?

4

1 に答える 1

0

私があなたの質問を正しく理解していればArayListVariableListVariable. この場合、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 に答える